![](/img/trans.png)
[英]How to keep zeros after decimal for BigDecimal in Java Spring Boot?
[英]BigDecimal Java. How to append zeros in front
我的問題基本上如下:
當我使用帶有 BigDecimal 的值時,如何在隨機數前面添加 append 個零? 假設我想要一個 <10 的數字遵循完全隨機的模式。 現在我想在數字前面加零,所以實際數量加起來是10個數字。
這是一個例子: BigDecimal num = new BigDecimal(2353);
現在我想要輸出:0000002353
是否有 function 將數字附加到 BigDecimal 類型? 我找不到任何。
我嘗試使用 while 循環來檢查數字是否小於十。 但我對 Big Decimal 的理解還不夠深入,無法將整數值與 BigDecimal 類型進行實際比較。 提前感謝您的幫助!
如果您改用BigInteger
(或任何 integer 類型,例如int
或long
),您可以使用
String.format("%010d", BigInteger.valueOf(2353))
格式字符串中的前導0
表示用 0 填充,后面的10
是所需的長度...
BigDecimal
旨在用於存儲大的浮點數。 由於在浮點數中 0000002353 和 2353 之間沒有任何區別,因此沒有合理的方法可以將 append 前導 0 轉換為BigDecimal
,就像沒有合理的方法可以將 append 前導 0 轉換為普通float
一樣。 根據您正在尋找的行為,我建議使用String
來存儲您的號碼,然后在您要執行任何操作時與BigDecimal
進行相互轉換。
要將整數類型與BigDecimal
進行比較,首先將變量轉換為BigDecimal
,然后調用BigDecimal
的compareTo
方法。 更多信息在這個問題中。
由於您對格式化數字感興趣,您可能需要查看DecimalFormat
class,它允許根據指定的模式格式化浮點數和 integer 數字。
BigDecimal num = new BigDecimal(2353);
DecimalFormat f1 = new DecimalFormat("0000000000");
DecimalFormat f2 = new DecimalFormat("0,000,000,000");
System.out.println(f1.format(num));
System.out.println(f2.format(num));
Output:
0000002353
0,000,002,353
如果最大位數是 10 並且只允許整數,那么除了使用long
和標准格式外,您不需要任何其他東西:
long myNumber = 123456;
System.out.printf("%010d%n", myNumber);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.