我想生成一個(非本地化)字符串,表示一個雙精度到'n'的小數位,最好舍入。例如。到小數點後四位,1.234567
- >"1.2346"
用手工格式化一個Java double
我知道我可以BigDecimal
,DecimalFormat
或String.format()
做到這一點,但在我的項目,我約束,並且不能夠使用他們或任何第三方庫。是否可以編寫一個簡單的函數來完成它?怎麼樣?
更新(更多詳細信息):這個問題的原因是我想要一個在GWT和Java中使用相同代碼並需要最少量代碼和庫的解決方案。格式化的數字不會根據瀏覽器的區域設置而改變(例如,當法國用戶運行它時,我不想要"1,2346"
)。
在GWT,我寫了這個JavaScript包裝功能:
/**
* Convert a double to a string with a specified number of decimal places.
* The reason we need this function is that by default GWT localizes
* number formatting.
*
* @param d double value
* @param decimalPlaces number of decimal places to include
* @return non-localized string representation of {@code d}
*/
public static native String toFixed(double d, int decimalPlaces) /*-{
return d.toFixed(decimalPlaces);
}-*/;
我想一些簡單的Java來取代它,這樣我就可以使用相同的代碼客戶端和服務器上。
public static String toFixed(double d, int decimalPlaces) {
// TODO
}
醜類,但其轉換爲字符串,舍入和削減小數點或在可能的情況下附加零點 – meskobalazs 2015-02-05 13:23:48
當然,這是可能的,它已經完成了。看到你有4k代表,你現在應該知道你應該展示你的嘗試,或者至少展示一下這個主題的研究。顯示效果,是我的觀點 – 2015-02-05 13:24:04
爲什麼不能使用'Double.toString(double d)'?核心類別當然不被視爲第三方api。 – vikingsteve 2015-02-05 13:25:26