Java:Преобразование double в строку
-
19-09-2019 - |
Вопрос
У меня есть двойник, стоимость которого равна 10 000 000,00 (десять миллионов).Я должен
преобразовать его в String
.При использовании метода toString
Я начинаю понимать String
"1.0E7", что соответствует спецификации.К сожалению мне нужна
в String
"10,000,000.00" (или эквивалент в зависимости от региона).
Как можно этого добиться?
Решение
Попробуйте либо то, либо другое
Числовой формат http://java.sun.com/javase/6/docs/api/java/text/NumberFormat.html
Десятичный формат http://java.sun.com/javase/6/docs/api/java/text/DecimalFormat.html
Другие советы
В дополнение к программе форматирования вы могли бы рассмотреть возможность использования java.math.BigDecimal
класс для точного представления чисел.
Расчеты, где требуется полная точность, например финансовые расчеты, лучше всего выполнять с помощью BigDecimal
.Математика с плавающей запятой лучше подходит для инженерных, графических и других математических вычислений, где некоторой точностью можно пожертвовать ради скорости.
public static void main(String[] args) throws ParseException {
double aDouble = 10000000.00;
DecimalFormat nf = (DecimalFormat) NumberFormat.getInstance(Locale.US);
String aString = Double.toString(aDouble);
System.out.println(nf.parse(aString));
}
Загляните в "Десятичный формат".Это позволяет вам форматировать выходные данные практически так, как вы хотите!