我正在尝试使用BigDecimal来打印Pi,但事实证明这是不准确的
BigDecimal d = new BigDecimal(Math.PI);
System.out.println(d);
上面的答案给了我“ 3.141592653589793115997963468544185161590576171875”
但是“ 3.141592653589793”之后的数字不正确
这是怎么回事?我可以使用bigdecimal打印PI吗?
最佳答案
从Javadoc for Math.PI:
PI
公共静态最终双PI
一个比pi更近的double值,即圆周长与其直径之比。
大致来说(当打印为十进制扩展名时):
3.141592653589793
它只是一个固定的64位序列,代表Pi的近似值,它是一个硬编码的常量,保存在标准库的JAR中。该64位序列不包含用于计算任意数量的Pi位的算法。
在第15位之后看到的数字或多或少是伪随机垃圾。将其包装为
BigDecimal
不会使其更加精确。关于java - 使用BigDecimal打印Pi,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48958077/