【发布时间】:2010-10-29 07:13:41
【问题描述】:
我有一个原始浮点数,我需要一个原始双精度数。简单地将浮点数转换为 double 会给我带来奇怪的额外精度。例如:
float temp = 14009.35F;
System.out.println(Float.toString(temp)); // Prints 14009.35
System.out.println(Double.toString((double)temp)); // Prints 14009.349609375
但是,如果我不进行强制转换,而是将浮点数输出为字符串,并将字符串解析为双精度字符串,我会得到我想要的:
System.out.println(Double.toString(Double.parseDouble(Float.toString(temp))));
// Prints 14009.35
有没有更好的方法而不是转到 String 并返回?
【问题讨论】:
标签: java floating-point double