Java 中最大精度的测试号

Mik*_*ynn 1 java precision

我想测试一个双精度为 3 或更少的最大精度。在 Java 中执行此操作的最佳方法是什么?

20.44567567 <- Fail
20.444 <- Pass
20.1 <- Pass
20 <- Pass
Run Code Online (Sandbox Code Playgroud)

SJu*_*n76 5

1) 不要使用double. 浮点逻辑最多是近似的。使用BigDecimal来代替。

2)我认为BigDecimal已经有一种设置精度的方法。如果不是,只需乘以 1000 并截断。做这个操作,得到一个新的数字,并与原来的数字进行比较。如果不同,则失败。