下面的代码摘自《java解惑》,如果你运行该程序,你就会发现它打印的是 0.8999999999999999。public class Change{
public static void main(String args[]){
System.out.println(2.00 - 1.10);
}
书上面说:问题在于 1.1 这个数字不能被精确表示成为一个 double,因此它被表示成为最
接近它的 double 值。这句话我不理解,请通俗的解释一下,谢谢!
public static void main(String args[]){
System.out.println(2.00 - 1.10);
}
书上面说:问题在于 1.1 这个数字不能被精确表示成为一个 double,因此它被表示成为最
接近它的 double 值。这句话我不理解,请通俗的解释一下,谢谢!
public class Change{
public static void main(String args[]){
System.out.printf("%.2f",2.00 - 1.10);// .2f小数保留两位
// 2.3f 整数保留2位,小数3位 }
}/*就好比说2.00
* 它的类型是double,它占8个字节,你写的2.0在计算机中的表示是
* 2.00000000.......(小数点后跟N个0,具体小数点后最大几位我忘记了,我只知道整数最大是999..(一共20个9) )
* 2.00-0.1=1.90
* 2.000-0.1=1.900
* ..........
* */
public static void main(String args[]){
System.out.printf("%.2f",2.00 - 1.10);// .2f小数保留两位
// 2.3f 整数保留2位,小数3位 }
}/*就好比说2.00
* 它的类型是double,它占8个字节,你写的2.0在计算机中的表示是
* 2.00000000.......(小数点后跟N个0,具体几个0我忘记了我只知道整数部分最大为9999..(一共20个9))
* 2.00-0.1=1.90
* 2.000-0.1=1.900
* ..........
* */