public class test { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(2.0 - 1.1); System.out.println((float)(2.0 - 1.1)); System.out.println((double)(2.0 - 1.1)); } } 0.8999999999999999 0.9 0.8999999999999999说明自动转换成double型了 具体就不知道了
2.00 1.10 默认应该是double类型
计算机坐减法时,采用的好像是二进制补码,如果直接用double进行减法操作,会因为精度问题而出现偏差. 最好采用Bigdecimal类进行转换,这样可以保证正确结果. package cn.zhangli.util;import java.math.BigDecimal;public class Bigdecimal { public static void main(String[] args) { BigDecimal first = new BigDecimal(2.0 + ""); BigDecimal second = new BigDecimal(1.1 + ""); BigDecimal result = first.subtract(second); System.out.println(result.toString()); }}
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(2.0 - 1.1);
System.out.println((float)(2.0 - 1.1));
System.out.println((double)(2.0 - 1.1));
}
}
0.8999999999999999
0.9
0.8999999999999999说明自动转换成double型了
具体就不知道了
最好采用Bigdecimal类进行转换,这样可以保证正确结果.
package cn.zhangli.util;import java.math.BigDecimal;public class Bigdecimal {
public static void main(String[] args) {
BigDecimal first = new BigDecimal(2.0 + "");
BigDecimal second = new BigDecimal(1.1 + "");
BigDecimal result = first.subtract(second);
System.out.println(result.toString());
}}