Строковый формат в форме $XX.XX,

Это может быть повторный пост, но я не могу найти ничего именно того, что я ищу. Я пытаюсь взять простое двойное число в любом количестве, которое не превышает 100, и использовать строковый формат для его форматирования как XX.XX, например, значение, подобное 45.4000000000.

Вещи, которые я пробовал

string.format("%f",valuehere)
string.format("%2f",valuehere)

Я не совсем понимаю javadocs, но также я просто хочу спросить, как если бы я добавил $ к %f, например, $%f, valuehere, он также должен вывести его со знаком доллара, верно?


person Andrew Riley    schedule 06.02.2021    source источник
comment
Не ответ, но поскольку кажется, что вы имеете дело с деньгами, вы должны знать, что вы не должны использовать double или float для представления денег - вместо этого используйте BigDecimal. См. здесь, почему.   -  person DaveyDaveDave    schedule 07.02.2021
comment
Благодарность! я изучу это и попытаюсь выяснить, как решить, где мне нужны $, я могу взять их отсюда   -  person Andrew Riley    schedule 07.02.2021
comment
Используйте формат валюты. Например, String s = NumberFormat.getCurrencyInstance().format(value);   -  person VGR    schedule 07.02.2021


Ответы (1)


Вы должны добавить десятичный разделитель в свой формат. В вашем случае формат должен быть %.2f в соответствии с документацией. .

Что это означает:

% ставится в начале форматирования

.2 Указывает, что нам нужны 2 цифры после запятой

f указывает, что здесь мы имеем дело с числом с плавающей запятой

String.format("%.2f",500.0545 )
person Yoni    schedule 06.02.2021