我有一个原始浮点数,我需要一个原始双精度数。简单地将浮点数转换为 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
有没有比去字符串和返回更好的方法?