gpt4 book ai didi

java - 在不损失精度的情况下划分两个数字

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:21 24 4
gpt4 key购买 nike

我将两个数字 466489/249001 相除,结果是非终止小数展开

As the BigDecimal class stores floating-point numbers with practically unlimited precision, I have gone for it.

    BigDecimal dividend = BigDecimal.valueOf(466489L);
BigDecimal divisor = BigDecimal.valueOf(249001L);
System.out.println((double)466489/249001);
//1.8734422753322275
System.out.println(dividend.divide(divisor, MathContext.DECIMAL128));
//1.873442275332227581415335681382806

WolframAlpha 我得到的结果是

1.87344227533222758141533568138280569154340745619495504034120344898213260187710089517712780269958755185722145694193999220...

所以我想我的结果是准确的。

现在我想知道如何使用由 WolframAlpha 计算的 BigDecimal 获得更精确的结果?

最佳答案

您应该能够提供具有自定义精度的 MathContext 实例,例如

dividend.divide(divisor, new MathContext( 100 ) ); //whatever precision you need

关于java - 在不损失精度的情况下划分两个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22299173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com