public class FloatTest { public static void main(String[] args)
{
double d=18%1.8;
System.out.println(d);
d=15%1.5;
System.out.println(d);
d=24%2.0;
System.out.println(d);
d=16%1.6;
System.out.println(d);
}
}
在控制台上打印的结果是:
1.7999999999999996
0.0
0.0
1.5999999999999992
不知为何是这样如何解释没规律呀???????!
如果可以马上结帖!!!!!!!!!!!!
{
double d=18%1.8;
System.out.println(d);
d=15%1.5;
System.out.println(d);
d=24%2.0;
System.out.println(d);
d=16%1.6;
System.out.println(d);
}
}
在控制台上打印的结果是:
1.7999999999999996
0.0
0.0
1.5999999999999992
不知为何是这样如何解释没规律呀???????!
如果可以马上结帖!!!!!!!!!!!!
int n = (int)a / b; (此处最好也要处理一下)
double d = a - b * n;
要求是取整后求吧?
public static void main(String[] args)
{
BigDecimal b = new BigDecimal("1.6");
BigDecimal c = new BigDecimal("16");
c = c.remainder(b);
System.out.println(c);
}
c语言的double型在计算机内部表示应为 1位数符,11位阶码,52位位数,总共64位构成构成
是一个相当相当精确的数据(并不是完全精确).最大值应该是2的3970次方左右当数据从机器传递到开发语言环境时,数据需要从一种格式转化为其它的格式。当进行数据转换时,有可能造成数据精度上的丢失。同样,数据从一种类型转换为另一种类型的过程也会影响程序的性能.有时间你看看这个
http://tag.csdn.net/tag/ieee754/