2016-08-28 75 views
0

我在我的應用程序計算中使用了一個BigDecimal變量。在某些情況下,當Bigdecimal值爲2.9922並且我將數據保存到SQL Server 2012時,我在數據庫中獲得了2.99條記錄。這樣的舍入對我來說可以,但有時我需要將數據庫中的記錄與新計算進行比較,並且我需要它們具有相同的舍入方法。Java中舍入方法相當於SQL Server舍入

所以我的問題是什麼是在Java中舍入方法將與SQL Server 2012四捨五入方法相同?

BigDecimal.ROUND_DOWNBigDecimal.ROUND_UPROUND_HALF_EVEN或哪一個?

+0

你閱讀每一個選項的文檔? –

回答

0

所以基本上你想要用十進制值來處理Scale。 對於這個:如果你可以在數據庫中更改數據列的小數位數。例如: 例如:如果列名是 - > [value] DECIMAL(15,2) - >可以使用alter table腳本將其更改爲[value] DECIMAL(15,5)。

由於BigDecimal.ROUND_DOWN或BigDecimal.ROUND_UP滿足不同的用例。

你可以參考gere你可以控制從這裏提到的java的規模。 Efficient BigDecimal round Up and down to two decimals

感謝

+1

我不需要在數據庫中進行更改。我需要更改代碼以獲得與我的數據庫中相同的舍入值。 – Purmarili