文字列12345678911234567を解析して2倍にすると予期しない結果になる。 数値が1234567891123456を超えるとDecimalFormatの解析エラーが発生する
double convertedNum = 0;
convertedNum = new DecimalFormat().parse(12345678911234567).doubleValue();
の下に変換結果が1.2345678911234568E16 だったが、私はそれが1.2345678911234567E16だった期待、そして私も
double convertedNum = 0;
BigDecimal bgNum = null;
bgNum = new BigDecimal(12345678911234567);
convertedNum = bgNum.doubleValue();
以下のように変換するためにはBigDecimalを使用しようと、私は同じでしょうコードを使用します結果、私はこれを引き起こす原因を見つけることができません。 誰かが私にいくつか示唆を与えることができます、ありがとう。
new BigDecimal("12345678911234567");
ようBigDecimal
のコンストラクタをString
引数で(ちょうど約)合理的な大きさの数を扱うことができます -
ご返信ありがとうございますが、私はダブルタイプで保存する必要があります。だから、BigDecimal doubleValue()を使って解析しますが、結果も1.2345678911234568E16です。 – kingaffery
@kingaffery私の更新が、あなたが求めていることが不可能である理由を明確にすることを願っています。 –