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;