本文目录一览:
- 1、关于JAVA double类型相减的问题
- 2、java double类型变量,相加或相减后面小数为什么会不一样呢?
- 3、Java的double类型数据加减结果不正确 13.123—12.000=1.1229999999
关于JAVA double类型相减的问题
可以相减 你的写法有错
输出函数的原型是print(String) 也就是括号里面的是String类型
多个string连接的时候用就 " + " 连接 你这里出现了 " - " 号 这是不允许的(double类型默认会调用toString()将数据转换成string)
当你用:System.out.println("两个数的差是:"+a3-a4);减号被认为是错误的...
正确的写法应该是:System.out.println("两个数的差是:"+(a3-a4));
至于你说 加 可以 只怕结果不是你想要的吧
乘除是因为运算符的优先级问题可以
建议你去看一些相关的基础吧
java double类型变量,相加或相减后面小数为什么会不一样呢?
该问题主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示1/10。就像我们平时使用的十进制中无法精确的表示1/3是一样的道理,如果需要在数值计算中不含有任何误差,要使用BigDecimal类进行编程。
具体的代码如下
//两个Double数值相加
public static Double add (Double value01,Double value02){
BigDecimal b1=new BigDecimal(value01.toString());
BigDecimal b2=new BigDecimal(value02.toString());
return b1.add(b2).doubleValue();
}
//两个Double数值相减
public static Double sub (Double value01,Double value02){
BigDecimal b1=new BigDecimal(value01.toString());
BigDecimal b2=new BigDecimal(value02.toString());
return b1.subtract(b2).doubleValue();
}
Java的double类型数据加减结果不正确 13.123—12.000=1.1229999999
计算机的2进制对于有些浮点数是无法精确表示的,你可以用 BigDecimal解决高精度计算