2017-04-05 62 views
0

我正在Sybase數據庫中工作。在我試圖使用SQL Round函數進行舍入之前,但發現一些數據不匹配問題,我需要構建一個返回數據庫輸出的Round值的java函數。如何得到java Math.Round和SQL Round函數之間的相同值?

SQL查詢: -

With Round :- select Country,Round(ISNULL(sum(value),0),1) as Round_Value from Database ## Result :- 15012.8 

Without Round :- select Country,sum(value) as Without_Round from Database ## Result :- 15012.82906 

現在,當我試圖用java功能,然後讓下面的結果四捨五入數據庫值(無輪次值)...

的Java : -

public static void main(String []args) 
    { 
     double value=15012.82906; 
     System.out.println("Test Value:"+ Math.round(value));##Result :- 15013 

    } 

有沒有什麼辦法讓從SQL數據庫和JAV相同的值一個循環函數?提前致謝。

+0

的可能的複製[如何回合一些到n位小數Java](http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java) –

+0

其實它不是o只有小數輪的焦點,但也關注獲得不同結果的SQL輪。所以我認爲它不是重複的。我嘗試了重複的結果,但沒有得到預期的結果。所以你能幫我解決嗎? –

回答

0

您的SQL查詢返回不同的結果,因爲第一個回合到第一個小數,第二個回到第一個小數。 Java代碼是四捨五入而不是小數。

您必須決定是否要舍入結果,如果是,則需要多少個小數。 Java和SQL都可以實現您所決定的任何內容。

隨着你的代碼已經覆蓋SQL不圓SQL一位小數圓潤的Java四捨五入沒有小數;這裏的缺失選項:

SQL四捨五入沒有小數

select Country, Round(sum(value), 0) as Round_Value 
from Database 

Java的舍與小數

This SO answer