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