我想驗證一個大小數的精度和比例。如何通過BigDecimal驗證精度和縮放比例?
我期待驗證一個大的小數不會超過10的精度或2的比例。我試着做一個maxlength,所以這個值不會違反我的db長度約束,但是無法獲得也可以工作。有人能指出我解決這個問題的方向嗎?
我想驗證一個大小數的精度和比例。如何通過BigDecimal驗證精度和縮放比例?
我期待驗證一個大的小數不會超過10的精度或2的比例。我試着做一個maxlength,所以這個值不會違反我的db長度約束,但是無法獲得也可以工作。有人能指出我解決這個問題的方向嗎?
的BigDecimal
類有三個方法,這可能會感興趣的是:
precision()
,它返回的位數的非標度值(例如,對於數123.45,返回的精度爲5 )scale()
,當正數(scale()
可以是負值時,返回小數點後的小數位數,在這種情況下,數字的非縮放值乘以十的倍數的倍數,例如,-3的縮放表示未縮放的值乘以1000),stripTrailingZeros()
,它返回一個BigDecimal
以及從表示中刪除的所有尾隨零。例如,計算對於給定的BigDecimal
B中的精度和規模,我們可以寫這樣的事情:
BigDecimal noZero = b.stripTrailingZeros();
int scale = noZero.scale();
int precision = noZero.precision();
if (scale < 0) { // Adjust for negative scale
precision -= scale;
scale = 0;
}
也許像NUMBER(10,2)(甲骨文基礎上,雖然)? –
我們使用sybase,所以不太瞭解Oracle。我只是想在java中用if語句構建一個字段驗證器來測試並確保提交的值不超過10,2。 –