最近在做一个小程序是发现了一个问题:
程序如下:
public class Modulus {
public static void main(String[] args) {
double d=42.55;
double d1=d%10;
System.out.println("d mod 10 ="+d1);
}
}
其结果为:d mod 10 =2.549999999999997
而如果改变一下:
public class Modulus {
public static void main(String[] args) {
double d=42.25;
double d1=d%10;
System.out.println("d mod 10 ="+d1);
}
}
结果为:d mod 10 =2.25
将数据类型doubleE改为float情况同样存在
这让我产生了不解,是平台有错还是Java机制里有什么问题.
望高手路过时 帮忙解惑.谢谢.