Jawaban:
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
,
, namun ada juga wilayah yang menggunakan .
pengelompokan. Singkatnya, pengodean lokal dianggap sebagai praktik yang buruk.
Locale.getCurrent()
adalah solusinya
Anda meminta yang tercepat, tetapi mungkin maksud Anda "terbaik" atau "benar" atau "khas"?
Anda juga meminta tanda koma untuk menunjukkan ribuan, tetapi mungkin maksud Anda "dalam bentuk yang dapat dibaca manusia normal sesuai dengan kebiasaan lokal pengguna Anda"?
Anda melakukannya seperti itu:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
Orang Amerika akan mendapatkan "35.634.646"
Jerman akan mendapatkan "35.634.646"
Jerman Swiss akan mendapatkan "35'634'646"
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
Integer:
int value = 100000;
String.format("%,d", value); // outputs 100,000
Ganda:
double value = 21403.3144d;
String.format("%,.2f", value); // outputs 21,403.31
- Diedit per umpan psuzzi .
String.format
. Ini dimulai dengan return new Formatter(l) ...
dll. Jadi argumen pengumpul sampah tidak sekuat kelihatannya.
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
Keluaran: 35,634,646
#,###
, jika Anda ingin memformat gaya Eropa maka Anda dapat menggunakannya #,##,###
.
,
.
Jawaban lainnya benar, namun periksa kembali lokal Anda sebelum menggunakan "%,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);
Hasil:
35,634,646
35 634 646
Gunakan %d
specifier format dengan koma:%,d
Sejauh ini cara termudah.
Jika hal yang sama harus dilakukan di JSP, gunakan:
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
ofcourse untuk beberapa nilai gunakan:
<c:forEach items="${yourlist}" var="yourlist">
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
</c:forEach>
inilah solusi bagi Anda yang tidak dapat mengakses "numberformat" atau "String.format" (menggunakan versi terbatas java di dalam suatu kerangka kerja). Semoga bermanfaat.
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
gunakan ekstensi
import java.text.NumberFormat
val Int.commaString: String
get() = NumberFormat.getInstance().format(this)
val String.commaString: String
get() = NumberFormat.getNumberInstance().format(this.toDouble())
val Long.commaString: String
get() = NumberFormat.getInstance().format(this)
val Double.commaString: String
get() = NumberFormat.getInstance().format(this)
hasil
1234.commaString => 1,234
"1234.456".commaString => 1,234.456
1234567890123456789.commaString => 1,234,567,890,123,456,789
1234.456.commaString => 1,234.456
tidak bisakah kamu menggunakan a
System.out.printf("%n%,d",int name);
Koma di printf
harus menambahkan koma ke dalam %d
antar.
Bukan positif tentang itu, tetapi bekerja untuk saya.
import java.text.NumberFormat;
.