[英]How to round and scale a number using DecimalFormat
我正在嘗試使用DecimalFormat
格式化數字,但問題是我沒有得到預期的結果。 這是問題所在:
我有這個號碼: 1439131519 ,我只想打印前五個數字,但在 4 位數字后加逗號,如下所示: 1439,1 。 我曾嘗試使用 DecimalFormat 但它沒有用。
我試過這樣但它不起作用:
public static DecimalFormat format2 = new DecimalFormat("0000.0");
有人有想法嗎?
使用數學而不是格式化更容易。
假設您的號碼是雙倍的:
double d = 1439131519;
d = d / 100000; // d = 14391,31519
d = Math.round(d) // d = 14391
d = d / 10; // d = 1439,1
當然,如果需要,您可以在一行代碼中完成。 在使用 Math.round 我假設你想四舍五入到最接近的值。 如果你想四舍五入,你可以使用 Math.floor。
逗號是歐洲大部分地區的正常小數分隔符,因此默認情況下在您的語言環境中可能會起作用。 如果沒有,您可以通過獲取諸如德國之類的語言環境的格式化程序來強制它。 請參閱: 如何將 DecimalFormat 的小數分隔符從逗號更改為點/點? .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.