Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 铸造时的问题数量增加一倍_Java - Fatal编程技术网

Java 铸造时的问题数量增加一倍

Java 铸造时的问题数量增加一倍,java,Java,我的程序以字符串的形式接收金额值,然后使用Double.parseDouble(transAmt)将其转换为Double 现在,当传递的金额为“100.00”时,我们将收到问题 请告知在转换为双零精度数字时,是否会丢失精度数字,并猜测“问题”可能是什么:double在Java中是数学实数的近似值。因此,100和100.00之间没有区别,它只是相同的值。double不具有精度,是一个近似值,是2的(负)幂和。因此,输出时的3.10可能是3.09999785,这是一个在求和或相乘时放大的错误 用于保

我的程序以
字符串的形式接收金额值,然后使用
Double.parseDouble(transAmt)
将其转换为
Double

现在,当传递的金额为
“100.00”
时,我们将收到问题


请告知在转换为双零精度数字时,是否会丢失精度数字,并猜测“问题”可能是什么:
double
在Java中是数学实数的近似值。因此,
100
100.00
之间没有区别,它只是相同的值。

double
不具有精度,是一个近似值,是2的(负)幂和。因此,输出时的3.10可能是3.09999785,这是一个在求和或相乘时放大的错误

用于保持精确性和精确性,如金融软件


不幸的是,BigDecimal的普通数学运算符不可用,但一般来说,它并不像double那样不安全。

您能给出一个单独的问题示例吗?人们可以更容易地提供帮助。问题是什么?在这个问题上根本没有需要处理的信息。可能是重复的
BigDecimal amount = new BigDecimal("12.99"); // A precision of 2 digits.
BigDecimal base = new BigDecimal("4.33");
assert base.multiply(BigDecimal.valueOf(3)).compareTo(amount) == 0;