gpt4 book ai didi

java - 在Java中将int转换为double期间精度会略有变化吗?

转载 作者:IT老高 更新时间:2023-10-28 20:22:14 25 4
gpt4 key购买 nike

我读过这个 - Why Are Floating Point Numbers Inaccurate?

因此,有时 float 的精度可能会因为其表示方式(带有指数和尾数的科学记数法)而改变。

但是如果我将一个整数值转换为double,有没有机会在Java中稍微改变double的精度?

我的意思是,

    int i = 3;
double d = (double) i;

System.out.println(d);

我得到的输出 3.0 符合我的预期。

但是,由于Java中 double 的表示风格,是否有可能像3.000001那样改变精度?

最佳答案

int 不能加倍,但你可以 long 加倍(或 int 浮点):

  • 并非所有大于 2^53-1(或小于 -2^53)的 long 都可以用 double 精确表示;
  • 并非所有大于 2^24-1(或小于 -2^24)的整数都可以用 float 精确表示。

这个限制是因为用于表示尾数的位数( double 为 53, float 为 24)。

关于java - 在Java中将int转换为double期间精度会略有变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716066/

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