我正在寻找将Float转换为Double而不会失去精度的最佳实践.到目前为止,我只发现一种正确的方法是将Float转换为String,将String转换为Double.
搜索Float API我偶然发现了这个方法doubleValue().我认为这是一个静态构造函数,它将从我的Float返回一个double而不会失去精度,但下面的代码表现得像一个强制转换:
public class Main {
public static void main(String[] args) {
Float floatNumber= 4.95f;
Double doubleNumber= floatNumber.doubleValue();
System.out.println(doubleNumber);
}
}
Run Code Online (Sandbox Code Playgroud)
输出为4.949999809265137
从Float API搜索关于此的任何其他文档我没有找到任何文档来告诉我在调用该方法时到底发生了什么.有人有任何想法吗?或者有人可以确认所有方法都执行了将我的Float转换为double和unbox吗?