我有这个字符串:1303317717.65384 - 这是一个毫秒(65384)的UNIX时间戳(1303317717)。Java:毫秒时间戳字符串浮点数
我该如何将它转换为Java中的float?我总是在获得1.06172723E9时,但我只希望它是1303317717.65384。
谢谢!
我有这个字符串:1303317717.65384 - 这是一个毫秒(65384)的UNIX时间戳(1303317717)。Java:毫秒时间戳字符串浮点数
我该如何将它转换为Java中的float?我总是在获得1.06172723E9时,但我只希望它是1303317717.65384。
谢谢!
不可能在浮点变量中以足够的精度显示这个 - 你必须使用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
非常感谢! :) – 2011-04-20 17:17:41
是的,没有blabla,只是代码和结果。优秀! – 2015-12-02 20:17:11
浮动在Java中只有约六位数字的精度。你需要一个双。
如果它是以字符串的形式,那么您可以使用Double.parseDouble(String s)
。
浮点精度不够。改为使用双。
添加代码你如何给出漂浮,所以我们可以帮助更好 – moritz 2011-04-20 16:52:28
我有两个澄清问题:1)你说65384是'毫秒' - 一秒钟只有1000毫秒;你的意思是微秒吗? 2)你需要从时间戳得到什么有效数字?您的示例时间戳在秒内有10位数字,并且(可能)在微秒内有6位数(假设这是#1的正确答案)。 Java浮点数(IEEE 754 32位浮点数)的精度略低于16位。根据您的最终目标,您可能需要更多数字。 – AaronD 2011-04-20 16:53:45