0
を返すサンプルコードである:ApfloatMath.pow方法はここで、ほぼ正しい値
ApfloatMath.pow(new Apfloat(25, 5), new Apfloat(0.5, 5));
上記のコードでは、これは、4.9999
を返す25
の平方根を行います。
私はこれが恣意的で正しい値を返すと思っていたでしょう。 Javadocから
を返すサンプルコードである:ApfloatMath.pow方法はここで、ほぼ正しい値
ApfloatMath.pow(new Apfloat(25, 5), new Apfloat(0.5, 5));
上記のコードでは、これは、4.9999
を返す25
の平方根を行います。
私はこれが恣意的で正しい値を返すと思っていたでしょう。 Javadocから
:
pow
任意のパワー。
log()
およびexp()
を使用して計算されます。
つまり、これはexp(log(x) * y)
のようになります。しかし、log(25)
は非合理的であり、したがって無限の桁数を有する。したがって、ある時点で近似する必要があります。
これを修正する方法はありませんか? –
@DanJoe:私はこの特定のライブラリに精通していないので、確かに言うことはできません。しかし、これは浮動小数点計算に頼らずに "正確な"結果を得る方法の一例に過ぎません。任意の精度タイプであっても、無限の拡張が必要になるとすぐに、結果をどこかで切り捨てる必要があります。 –