gpt4 book ai didi

java - 我可以将一个 long 值精确地存储在一个 double 变量中而没有任何舍入错误吗?

转载 作者:行者123 更新时间:2023-11-30 07:58:10 24 4
gpt4 key购买 nike

我编写了一个转换器,它使用 Double.parseDouble 将字符串转换为长值。因为用户有时会以 xx.xx 格式而不是纯整数格式输入。使用 Double.parseDouble 解析长值时是否有可能丢失信息?

static Long toLong(Object object) {
if (object == null) {
return null;
}
if (object instanceof Number) {
return ((Number) object).longValue();
}
return new Double(Double.parseDouble(object.toString().trim())).longValue();
}

最佳答案

是的。
double 仅使用 53 位来存储尾数——数字中的实际数字。
其他 11 位用于存储指数——小数所在的位置。

因此,您不能在 double 中精确表示 64 位数字。

关于java - 我可以将一个 long 值精确地存储在一个 double 变量中而没有任何舍入错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705977/

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