我在我的应用程序中为我的数字使用 BigDecimal,例如,使用 JPA。我对“精度”和“规模”这两个术语进行了一些研究,但我不明白它们到底是什么。
谁能向我解释 BigDecimal 值的“精度”和“比例”的含义?
@Column(precision = 11, scale = 2)
谢谢!
我在我的应用程序中为我的数字使用 BigDecimal,例如,使用 JPA。我对“精度”和“规模”这两个术语进行了一些研究,但我不明白它们到底是什么。
谁能向我解释 BigDecimal 值的“精度”和“比例”的含义?
@Column(precision = 11, scale = 2)
谢谢!
A
。
BigDecimal
由两个值定义:任意精度整数和 32 位整数scale。的值BigDecimal
定义为精确:
因此,precision表示任意精度整数的长度。以下是几个具有相同比例但精度不同的数字示例:
在数字等于 0(即 0.000)的特殊情况下,精度始终为 1。
规模:
这意味着“BigDecimal”的整数值乘以
。
以下是一些具有相同精度但具有不同比例的示例:
BigDecimal.toString:
a 的
toString
方法BigDecimal
根据比例和 表现不同precision
。(感谢@RudyVelthuis 指出这一点。)scale == 0
,则按原样打印出整数。scale < 0
,则始终使用 E-Notation(例如 5 scale -1 产生“5E+1”)scale >= 0
和precision - scale -1 >= -6
产生一个普通的十进制数(例如千万刻度1产生“1000000.0”)precision - scale -1
equals更多例子: