众所周知,当需要任意精度时,不应使用 java 浮点原始值。 Goetz 在他的 excellent article 中解释了这个问题。 。
想象一下,我们需要在某个项目中实现任意精度,并且我们没有 BigDecimal 类(因为它在 API 中不可用,例如:JavaME),也没有时间开发一个 BigDecimal 类。自定义实现。假设我们事先知道只需要相对较小的精度(2 到 4 位小数),是否有可能使用 float 和 double 类型以及舍入函数来实现 100% 可靠的紧急解决方法?如果可以,可以使用 API 中的哪个函数? 如果这个功能不可用,但您仍然认为它可以解决问题,那么实现它有多复杂?
最佳答案
不,这是不可能的,因为某些值无法使用浮点算术表示。 0.1
是最简单的示例。
关于java - Java 浮点危险可以通过舍入来避免吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506654/