簡體   English   中英

如何使用 DecimalFormat 對數字進行舍入和縮放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM