gpt4 book ai didi

java - Float.doubleValue() 方法

转载 作者:行者123 更新时间:2023-11-29 10:05:53 24 4
gpt4 key购买 nike

我正在寻找在不降低精度的情况下将 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);

}
}

输出为 4.949999809265137

从 Float API 搜索有关此的任何其他文档时,我没有找到任何文档来告诉我调用该方法时究竟发生了什么。有人知道吗?或者有人可以确认所有方法所做的就是将我的 Float 转换为 double 并将其拆箱吗?

最佳答案

如果您真的想要保留 float 的值,那么简单的原始类型转换(甚至是隐式转换)就可以满足您的所有需求:

float f = 4.95f;
double d = f;

从根本上说,4.95f 已经不准确 - 您不能将该数字精确表示为 float 。 floatNumber 的确切值也在 doubleNumber 中表示 - 只是该值不是 4.95。

如果您真的关心精确的小数 数字,您应该改用BigDecimal(或缩放整数)。

关于java - Float.doubleValue() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com