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
Конечно, я могу написать функцию для обрезки этих нулей, но это большая потеря производительности из-за манипуляций со строками. Могу ли я сделать лучше с другим форматом кода?
РЕДАКТИРОВАТЬ
Ответы Тома Э. и Джереми С. неприемлемы, поскольку они оба произвольно округляют до 2 десятичных знаков. Пожалуйста, поймите проблему, прежде чем ответить.
РЕДАКТИРОВАТЬ 2
Обратите внимание, что String.format(format, args...)
это зависит от локали (см. Ответы ниже).
System.out.println("YOUR STRING" + YOUR_DOUBLE_VARIABLE);