2013-01-04 55 views
1

在我的Java Jersey Rest服務中,對於更新方法,值「money」在服務器中表示爲long。有效值介於30.00和500.00之間Java Rest發送雙值

哪一種比較標準?我是否應該強制客戶端以30.00的價格發送貨幣值,並在服務器上手動解析,而不是使其成倍增長。或以3000的形式發送並解析。或者在java/jerseylibrary中已經有了一個這樣的方法。

@PUT 
@Path("/money") 
@Consumes("text/plain) 
public void updateThreshold(String threshold) { 

*//check value and update in server* 
} 

注:我不想使用參數化的要求來設置參數類型爲雙

回答

1

這將是更容易保存美分的所有數據。它避免了一些可能的舍入問題,以及不同的數據格式(在這些國家使用','作爲分隔符,在其他'。'),也更好地存儲和排序數據庫中的int值。

+0

TNX我不知道美分,它是一個非標準的,或只是一個命名,怎麼辦我轉換它? – Spring

+0

我認爲@Imysak的意思是美分..在貨幣單位..美元,美分等) –

+0

thanx @ anurag-kapur,我的意思是如果你有兩位數的精度,你可以存儲爲int(只是x100,所以你需要保持精確度)。 – iMysak

0

如果使用仙並不適合你,那麼讓用戶傳遞一個字符串然後使用Float.parseFloat(floatval)怎麼樣?

適用於字符串輸入,比如:30.98,30和30.00 例如:

String amount1 = "30.98"; 
    String amount2 = "30"; 
    String amount3 = "30.00"; 
    System.out.println("Amount :: " + Float.parseFloat(amount1)); 
    System.out.println("Amount :: " + Float.parseFloat(amount2)); 
    System.out.println("Amount :: " + Float.parseFloat(amount3)); 

輸出:

Amount :: 30.98 
Amount :: 30.0 
Amount :: 30.0