java基本数据类

来源:百度知道 编辑:UC知道 时间:2024/09/24 00:33:18
public class TT {
public static void main(String[] args) {
Integer i=new Integer(100);
Double d=new Double("123.457");
double c=i.doubleValue()+d.doubleValue();
System.out.println(c);
}
}为什么把 Double d=new Double("123.457");里的123.457改成123.455或123.456之后结果输出是223.45499999999998和223.45600000000002呢?

计算机内表达浮点数使用的是二进制小数形式,二进制小数与十进制小数间是不能精确转换的。所以,进行小数运算时,你给的值与实际值之间存在误差是很正常的事。
另外,对象包装类通常只用在数字串与数值间的转换。你的程序我不知道你要用来做什么。

因为是double嘛,计算机是二进制的且位数有限,不可能精确表示每个小数的!所以只能用它能表示的最接近的数要表示了

因为double类型的数据是32位的默认在Java程序里。

二进制放不下 呵呵