Я хочу преобразовать Integer 35634646, чтобы иметь тысячу "," поэтому это должно быть 35,634,646.
Каким будет самый быстрый способ сделать это?
Я хочу преобразовать Integer 35634646, чтобы иметь тысячу "," поэтому это должно быть 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 = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
OUTPUT: 35,634,646
double value = 21403.3144d;
String.format("%,.2f", value);
21,403.31
Другие ответы верны, однако дважды проверьте свой язык перед использованием "%,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
Это решение работало для меня:
NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));
Вы не можете использовать
System.out.printf("%n%,d",int name);
Запятая в printf
должна добавлять запятые в интервал %d
.
Не положительно, но работает для меня.
Если это необходимо сделать в 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>
Сначала вам нужно включить теги JSTL: -
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
в начале страницы