gpt4 book ai didi

java - float 到 long 转换增加值

转载 作者:行者123 更新时间:2023-12-01 20:16:49 25 4
gpt4 key购买 nike

我正在存储一个来自后端系统的长值,我必须将其转换为 float ,因为第三方 api 之一只理解 float 。现在,当我读回 float 并尝试转换回长整型时,我得到的数字比我得到的数字更大(有时我也看到更小)。

我的问题是如何才能长时间取回原始号码。如果需要,我很乐意添加任何舍入逻辑

public class Main {

public static void main(String[] args) {


long item = 1502028000;

System.out.println(String.format("item -> %d",item));

float floatItem = item;

System.out.println(String.format("floatItem -> %f",floatItem));

long resultItem = (long)floatItem;

System.out.println(String.format("resultItem -> %d",resultItem));

}
}

下面是输出。我需要找回我的原始号码,在本例中为 1502028000。

item -> 1502028000
floatItem -> 1502028032.000000
resultItem -> 1502028032

最佳答案

简短的回答是,float 值只能精确到大约 7 位数字。就您要转换为 float 的 long 值而言,这意味着 float 只能保留 1502028000 的前 7 位数字。请注意,这 7 位仍保留在float 值以及何时转换回 long。

如果您想了解有关浮点精度的更多信息,您应该查看 this 。作为练习,您可以使用 double 执行相同的操作,并且应保留更多数字。

关于java - float 到 long 转换增加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628053/

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