私のアプリケーションでは、JPAなどで私の数値にBigDecimalを使用しています。私は「精度」と「スケール」という用語について少し調べましたが、正確には何か分かりません。BigDecimal、精度と位取り
誰も私にBigDecimal値の '精度'と 'スケール'の意味を説明できますか?
@Column(precision = 11, scale = 2)
ありがとう! Javadocを引用
私のアプリケーションでは、JPAなどで私の数値にBigDecimalを使用しています。私は「精度」と「スケール」という用語について少し調べましたが、正確には何か分かりません。BigDecimal、精度と位取り
誰も私にBigDecimal値の '精度'と 'スケール'の意味を説明できますか?
@Column(precision = 11, scale = 2)
ありがとう! Javadocを引用
BigDecimal
は、二つの値によって定義される任意の精度の整数、32ビット整数スケール。 BigDecimal
の値はと定義されています。
精度:
precisionはスケーリングされていない値の桁数です。 は、例えば、数123.45のために、返される精度は5
だから、精度は、任意精度の整数の長さを示しています。ここで、同じスケールを持つ数値のいくつかの例が、異なる精度である:
精度= 4
スケール:
ゼロまたは正の場合、scaleは、小数点以下の桁数です。負の場合、数値の非スケーリングされた値は、スケールの否定の累乗に10を掛けられます。例えば、-3のスケールはスケーリングされていない値は、これは「のBigDecimal」の整数値を乗算されることを意味1000
乗算されることを意味します。ここ
は同じ精度のいくつかの例は、異なるスケールである:スケール4 = 1.2345
BigDecimal.toString:BigDecimal
ため
toString
方法が異なっ規模とprecision
に基づいて動作します。そのまま(これを指摘するため@RudyVelthuisに感謝。)
scale == 0
場合、整数は単に、プリントアウトされます。scale < 0
場合、E-表記が常に使用される普通進数が生成さscale >= 0
とprecision - scale -1 >= -6
場合precision - scale -1
は -6未満で等しいので、10スケール8は、 "1.0E-7" を生成します。詳細例:
、 '[12345は、-1]'良くToString'はあまりにも、返されるもの 'おそらく' 1.2345E + 5'、で表されます。そうでなければ、非常に良い説明。 –
例についての素晴らしい説明! toStringメソッドは、ヘック、私は 'ToString'を書い参照E +表記 – jpadilladev
@RudyVelthuisのおかげで、私が説明するセクションを追加しました。それはJavaではなく、Delphiの話です。 ;-) –
:
精度は、スケーリングされていない値の桁数です。
と
は、ゼロまたは正の場合、スケールは小数点以下の桁数です。負の場合、数値の非スケーリングされた値は、スケールの否定の累乗に10を掛けられます。例えば、-3のスケールはスケーリングされていない値が乗算される手段1000
あなたの例注釈最大桁から(完全11)の前に小数点以下2及び9: 123456789,01
質問は 'java.math.BigDecimal'とに絶対に何も持っていません。 '@ javax.persistence.Column'はJava SEの一部ではありません。 JPAの主題です。 – Tiny
精度とスケールは、多くの場合、彼はJPAと、たとえば、計算に使用するものであるのjava.math.BigDecimal、ために使用される用語です。 ISTM彼または彼女はBigDecimalの文脈で彼らが何を意味するかを知りたい。実際 –