gpt4 book ai didi

java - 为什么这里需要 F 后缀以避免错误?

转载 作者:行者123 更新时间:2023-12-01 18:43:45 25 4
gpt4 key购买 nike

float f = 3.4028235E38F;

可以正常编译,但是

float f = 3.4028235E38;

抛出此错误:

 possible loss of precision

在此代码中:

http://ideone.com/0Hu3dA

我所期望的恰恰相反,因为浮点文字默认是 double 的,并且应该更精确。

最佳答案

因为 float 默认为double类型。要使其成为 float ,请附加一个F。您在以下作业中遇到错误:

float f = 3.4028235E38;

因为 double 比 float 精度更高。因此,可能会损失精度。

I would have expected just the opposite as floating point literals are by default double and should be more precise.

让我们检查数字的二进制表示形式,直至 double :

0x47EFFFFFE54DAFF8 =    01000111 11101111 11111111 11111111 
11100101 01001101 10101111 11111000

现在,由于 float 是单精度 32 位浮点值。它无法存储所有 double 值,即 double 64 位浮点值。

关于java - 为什么这里需要 F 后缀以避免错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788323/

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