回答:
DecimalFormat
クラスを見たいと思うかもしれません。異なるロケールをサポートします(例:一部の国では1.000.500.000,57
代わりにフォーマットされる)。
また、その文字列を数値に変換する必要があります。これは次のようにして行うことができます:
double amount = Double.parseDouble(number);
コードサンプル:
String number = "1000500000.574";
double amount = Double.parseDouble(number);
DecimalFormat formatter = new DecimalFormat("#,###.00");
System.out.println(formatter.format(amount));
これは、String.format()を使用して実現することもできます。これは、1つの文字列で複数の数値をフォーマットする場合に、より簡単または柔軟、あるいはその両方になる場合があります。
String number = "1000500000.574";
Double numParsed = Double.parseDouble(number);
System.out.println(String.format("The input number is: %,.2f", numParsed));
// Or
String numString = String.format("%,.2f", numParsed);
フォーマット文字列の "%,. 2f"-"、"はカンマで区切られた別々の数字グループを意味し、 "。2"は小数点以下2桁に丸めることを意味します。
他のフォーマットオプションのリファレンスについては、https://docs.oracle.com/javase/tutorial/java/data/numberformat.htmlを参照してください。
文字列を数値に変換したら、次を使用できます
// format the number for the default locale
NumberFormat.getInstance().format(num)
または
// format the number for a particular locale
NumberFormat.getInstance(locale).format(num)
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
独自のフォーマットユーティリティを作成しました。これは、多くの機能を提供するとともに、フォーマットの処理が非常に高速です:)
それはサポートします:
コードはここにあります。次のように呼び出します。
public static void main(String[])
{
int settings = ValueFormat.COMMAS | ValueFormat.PRECISION(2) | ValueFormat.MILLIONS;
String formatted = ValueFormat.format(1234567, settings);
}
また、これは10進数のサポートを処理しませんが、整数値には非常に役立ちます。上記の例では、出力として「1.23M」が表示されます。おそらく10進数のサポートを追加することもできますが、それをあまり使用しなかったので、これを、数値計算のために圧縮されたchar []配列を処理するBigIntegerタイプのクラスにマージすることもできます。
K
かM
意味
public void convert(int s)
{
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(s));
}
public static void main(String args[])
{
LocalEx n=new LocalEx();
n.convert(10000);
}
次のコードを使用して、変換全体を1行で実行できます。
String number = "1000500000.574";
String convertedString = new DecimalFormat("#,###.##").format(Double.parseDouble(number));
DecimalFormatコンストラクターの最後の2つの#記号も0にすることができます。どちらの方法でも機能します。
最初の答えは非常にうまく機能しますが、ZERO / 0の場合は.00としてフォーマットされます
したがって、形式#、## 0.00がうまく機能しています。実動システムにデプロイする前に、常に0/100 / 2334.30などの異なる数値と負の数値をテストしてください。