64-битный дубль может представлять целое число +/- 2 53 точно
Учитывая этот факт, я решил использовать двойной тип в качестве единого типа для всех моих типов, так как мое самое большое целое число - 32-разрядное без знака.
Но теперь я должен напечатать эти псевдоцелые числа, но проблема в том, что они также смешиваются с реальными двойными числами.
Итак, как мне правильно напечатать эти двойники на Java?
Я пробовал String.format("%f", value)
, что близко, за исключением того, что я получаю много конечных нулей для малых значений.
Вот пример выходных данных %f
232.00000000
0.18000000000
1237875192.0
4.5800000000
0.00000000
1.23450000
Что я хочу, это:
232
0.18
1237875192
4.58
0
1.2345
Конечно, я могу написать функцию для обрезки этих нулей, но это большая потеря производительности из-за манипулирования строками. Могу ли я сделать лучше с кодом другого формата?
EDIT
Ответы Тома Э. и Джереми С. неприемлемы, поскольку они оба произвольно округляют до 2 десятичных знаков. Пожалуйста, поймите проблему, прежде чем ответить.
РЕДАКТИРОВАТЬ 2
Обратите внимание, что String.format(format, args...)
является в зависимости от региона (см. Ответы ниже).