Java: строка миллисекундной метки времени для перемещения - PullRequest
4 голосов
/ 20 апреля 2011

У меня есть строка: 1303317717.65384 - это метка времени UNIX (1303317717) с миллисекундами (65384).

Как я могу преобразовать это в float на Java? Я всегда получаю 1.06172723E9 при выдаче, но я просто хочу, чтобы это было 1303317717.65384.

Спасибо!

Ответы [ 3 ]

9 голосов
/ 20 апреля 2011

Невозможно отобразить это с достаточной точностью в переменной с плавающей запятой - вы должны использовать double.

Демо:

System.out.println(String.format("%f", Float.parseFloat("1303317717.65384")));
System.out.println(String.format("%f", Double.parseDouble("1303317717.65384")));

выход

1303317760.000000
1303317717.653840
2 голосов
/ 20 апреля 2011

Плавающие в Java имеют только около шести цифр точности. Вам нужен двойник.

Если он в форме строки, вы можете использовать Double.parseDouble(String s).

0 голосов
/ 20 апреля 2011

Поплавок имеет недостаточную точность.Вместо этого используйте двойной.

...