<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java `NumberFormat` 原文:http://zetcode.com/java/numberformat/ Java NumberFormat 教程顯示了如何使用 Java 格式化數字。 不同的文化使用不同的方式表示數字。 例如,貨幣格式化的方式在世界各國中有很大不同。 ## `NumberFormat` `NumberFormat`是用于格式化和解析數字的 Java 類。 使用`NumberFormat`,我們可以格式化和解析任何語言環境的數字。 `NumberFormat`允許我們根據特定的語言環境舍入值,設置小數點分隔符,設置小數位數或格式化值。 ## 創建 Java `NumberFormat` `NumberFormat`有幾種創建數字格式的靜態方法。 ```java static NumberFormat getInstance(Locale inLocale) ``` 此`getInstance()`方法返回指定語言環境的通用數字格式。 ## `NumberFormat`格式化數字 不同地區的數字格式不同。 例如,某些國家/地區使用點作為小數點分隔符(美國,英國),而其他國家/地區則使用逗號(斯洛伐克,法國)。 `FormattingNumbers.java` ```java package com.zetcode; import java.text.NumberFormat; import java.util.Locale; public class FormattingNumbers { public static void main(String[] args) { double n = 1240.35; NumberFormat nf = NumberFormat.getInstance(new Locale("en", "US")); String val = nf.format(n); System.out.println(val); NumberFormat nf2 = NumberFormat.getInstance(new Locale("sk", "SK")); String val2 = nf2.format(n); System.out.println(val2); NumberFormat nf3 = NumberFormat.getInstance(new Locale("da", "DK")); String val3 = nf3.format(n); System.out.println(val3); } } ``` 該示例在三個不同的語言環境中顯示一個數字。 ```java double n = 1240.35; ``` 這是要格式化的值。 ```java NumberFormat nf = NumberFormat.getInstance(new Locale("en", "US")); ``` 我們為美國語言環境創建一個`NumberFormat`。 ```java String val = nf.format(n); ``` 我們使用`format()`方法格式化該值。 ```java NumberFormat nf2 = NumberFormat.getInstance(new Locale("sk", "SK")); String val2 = nf2.format(n); ``` 在這里,我們格式化斯洛伐克語區域設置的值。 ```java 1,240.35 1 240,35 1.240,35 ``` 美國,斯洛伐克和丹麥對數字分組和小數點使用不同的字符。 ## `NumberFormat`分組數字 為了便于閱讀,可以使用定界符將具有許多數字的數字分為幾組。 `setGroupingUsed()`設置是否以格式使用分組。 `Grouping.java` ```java package com.zetcode; import java.text.NumberFormat; import java.util.Locale; public class Grouping { public static void main(String[] args) { long val = 23_500_390_800_380L; NumberFormat nf = NumberFormat.getInstance(new Locale("sk", "SK")); nf.setGroupingUsed(true); System.out.println(nf.format(val)); nf.setGroupingUsed(false); System.out.println(nf.format(val)); } } ``` 我們有很多電話。 我們演示了斯洛伐克語言環境的數字分組。 ```java long val = 23_500_390_800_380L; ``` 從 Java 7 開始,可以在數字字面值中使用下劃線字符。 ```java nf.setGroupingUsed(true); ``` 我們使用`setGroupingUsed()`方法設置分組。 ```java 23 500 390 800 380 23500390800380 ``` 第一個值比第二個更具可讀性。 斯洛伐克使用空格字符進行數字分組。 ## `NumberFormat`小數位數 我們可以用`setMinimumFractionDigits()`和`setMaximumFractionDigits()`控制小數位數。 如果位數少于最小小數位數,則將零添加到該值。 如果位數比小數位數的最大位數多,則四舍五入。 `FractionDigits.java` ```java package com.zetcode; import java.text.NumberFormat; import java.util.Locale; public class FractionDigits { public static void main(String[] args) { double val1 = 4.5678934; double val2 = 2.3; NumberFormat nf = NumberFormat.getInstance(new Locale("sk", "SK")); nf.setMinimumFractionDigits(2); nf.setMaximumFractionDigits(4); System.out.println(nf.format(val1)); System.out.println(nf.format(val2)); } } ``` 在示例中,我們設置了分數位數的最小和最大數目。 ```java 4,5679 2,30 ``` 第一個值四舍五入,第二個值再加上一個零數字。 ## `NumberFormat`舍入數字 如前所述,如果小數位數多于允許位數的最大值,則該值將四舍五入。 有幾種可用的舍入技術。 `RoundingNumbers.java` ```java package com.zetcode; import java.math.RoundingMode; import java.text.NumberFormat; import java.util.Locale; public class RoundingNumbers { public static void main(String[] args) { double nums[] = {2.32, 2.55, 3.19, 4.88, 5.54, 3.22, 8.78}; NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH); nf.setMaximumFractionDigits(1); nf.setRoundingMode(RoundingMode.UP); for (double num : nums) { String number = nf.format(num); System.out.printf("%s ", number); } System.out.println(); nf.setRoundingMode(RoundingMode.DOWN); for (double num : nums) { String number = nf.format(num); System.out.printf("%s ", number); } System.out.println(); } } ``` 該示例使用以下兩種舍入模式對雙數進行舍入:`RoundingMode.UP`和`RoundingMode.DOWN`。 ```java nf.setMaximumFractionDigits(1); nf.setRoundingMode(RoundingMode.UP); ``` 我們通過`setMaximumFractionDigits()`設置最大小數位數,并通過`setRoundingMode()`設置舍入模式。 ```java 2.4 2.6 3.2 4.9 5.6 3.3 8.8 2.3 2.5 3.1 4.8 5.5 3.2 8.7 ``` 這是輸出。 ## `NumberFormat`格式化百分比 `NumberFormat.getPercentInstance()`用于格式化百分比。 `Percentages.java` ```java package com.zetcode; import java.text.NumberFormat; import java.util.Locale; public class Percentages { public static void main(String[] args) { double x = 25f / 100f; NumberFormat pf = NumberFormat.getPercentInstance(new Locale("sk", "SK")); System.out.println(pf.format(x)); } } ``` 該示例將雙精度值格式化為百分比。 ```java 25% ``` 這是輸出。 ## `NumberFormat`格式貨幣 處理數字時最復雜的任務之一是格式化貨幣。 我們使用`NumberFormat.getCurrencyInstance()`來獲取貨幣的數字格式。 `Currencies.java` ```java package com.zetcode; import java.text.NumberFormat; import java.util.Locale; public class Currencies { public static void main(String[] args) { int val = 23_500; NumberFormat cf1 = NumberFormat.getCurrencyInstance(new Locale("en", "US")); System.out.println(cf1.format(val)); NumberFormat cf2 = NumberFormat.getCurrencyInstance(new Locale("sk", "SK")); System.out.println(cf2.format(val)); NumberFormat cf3 = NumberFormat.getCurrencyInstance(new Locale("zh", "CN")); System.out.println(cf3.format(val)); } } ``` 該示例顯示三個不同國家/地區的貨幣:美國,斯洛伐克和中國。 ```java NumberFormat cf3 = NumberFormat.getCurrencyInstance(new Locale("zh", "CN")); ``` 此行獲取人民幣的數字格式。 ```java $23,500.00 23?500,00 € ¥23,500.00 ``` 這是輸出。 ## `NumberFormat`解析數字 `parse()`方法從給定字符串的開頭解析文本以產生數字。 `ParsingNumbers.java` ```java package com.zetcode; import java.text.NumberFormat; import java.text.ParseException; import java.util.Locale; public class ParsingNumbers { public static void main(String[] args) throws ParseException { NumberFormat nf = NumberFormat.getInstance(new Locale("sk", "SK")); nf.setMaximumFractionDigits(3); Number num = nf.parse("150000,456"); System.out.println(num.doubleValue()); } } ``` 該示例使用斯洛伐克語語言環境解析值。 在本教程中,我們使用 Java `NumberFormat`。 我們設置了數字,貨幣,百分比,四舍五入的格式,設置了小數位數,并設置了數字分組。 您可能也對相關教程感興趣: [Java 教程](/lang/java/), [Java `StringBuilder`教程](/java/stringbuilder/), [Java `ArrayList`教程](/articles/javaarraylist/), [Java `static`關鍵字](/java/statickeyword/), [Java8 `forEach`教程](/articles/java8foreach/),[讀取 Java 中的文本文件](/articles/javareadtext/)和[用 Java 讀取和寫入 ICO 圖像](/articles/javaico/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看