9

Java の 128 ビット (4 倍精度) 浮動小数点数である別のシステムからの数値を利用する必要があります。

Java には同等の型がないことを考慮して、Java コードを使用して数値の精度を下げ、Java double に格納できるようにしたいと考えています。これは、c またはアセンブリを使用してかなり簡単に実行できますが、純粋に Java で実行したいと考えています。

Java では、4 倍精度の数値が 128 ビットのバイト配列に格納されていると想定するのが妥当です。

Javaのみを使用して、良い解決策はありますか? ありがとう。

4

3 に答える 3

3

インポートされた表現からBigDecimal インスタンス化されたデータセットのサイズによってはString、簡単で正確なオプションになる場合があります。これらの数値の文字列表現は、任意のプログラミング言語からエクスポートできると思います。

于 2014-01-10T19:24:25.700 に答える
1

この質問はかなり前に尋ねられましたが、おそらく誰かにとってはまだ興味があるかもしれません. 128 ビット浮動小数点演算用のJava クラスがあり、精度を損なうことなく 128 ビット IEEE-754 浮動小数点値を独自の内部表現に変換するメソッドがあります。このような値に対して算術演算を実行し、それらをや、 、などIEEE-754 binary128の他の一般的な数値型に戻すことができます。また、そのような値の 10 進数表現を含む文字列を解析し、それらを文字列に変換することもできます。内部的には、128 ビットの仮数が格納されるため、計算の相対誤差は 1.47e-39 を超えません。BidDecimaldoublelong

于 2021-06-02T10:17:08.283 に答える