整数35634646を変換して1000の ""にするため、35,634,646になります。
それを行う最も簡単な方法は何ですか?
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
最速を要求しますが、おそらく「最良」または「正しい」または「典型的な」という意味ですか?
また、数千を示すためにコンマを要求しますが、おそらく「ユーザーのローカル習慣に従って、通常の人間が読める形式で」という意味ですか?
あなたはそうします:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
アメリカ人は「35,634,646」を取得します
ドイツ人は「35.634.646」を取得します
スイスのドイツ人は「35'634'646」を取得します
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
整数:
int value = 100000;
String.format("%,d", value); // outputs 100,000
ダブルス:
double value = 21403.3144d;
String.format("%,.2f", value); // outputs 21,403.31
- psuzzi フィードバックごとに編集。
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
出力 :35,634,646
他の答えは正しいですが、"%,d"
を使用する前にロケールを再確認してください:
Locale.setDefault(Locale.US);
int bigNumber = 35634646;
String formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
Locale.setDefault(new Locale("pl", "PL"));
formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
結果:
35,634,646
35 634 646
%d
形式指定子をコンマで使用します:%,d
これがはるかに簡単な方法です。
このソリューションは私のために働いた:
NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));
同じことをJSPで行う必要がある場合は、次を使用します。
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
複数の値を使用する場合のコース:
<c:forEach items="${yourlist}" var="yourlist">
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
</c:forEach>
「numberformat」にも「String.format」にもアクセスできないユーザー向けのソリューションです(フレームワーク内でJavaの限定バージョンを使用)。役に立てば幸いです。
number= 123456789;
thousandsSeparator=",";
myNumberString=number.toString();
numberLength=myNumberString.length;
howManySeparators=Math.floor((numberLength-1)/3)
formattedString=myNumberString.substring(0,numberLength-(howManySeparators*3))
while (howManySeparators>0) {
formattedString=formattedString+thousandsSeparator+myNumberString.substring(numberLength-(howManySeparators*3),numberLength-((howManySeparators-1)*3));
howManySeparators=howManySeparators-1; }
formattedString