gpt4 book ai didi

c# - 为什么我的号码四舍五入不正确?

转载 作者:太空狗 更新时间:2023-10-29 19:52:13 26 4
gpt4 key购买 nike

这感觉就像是那种只会在原地失败的代码,但我会尝试将它改编成代表我所看到的内容的代码片段。

float f = myFloat * myConstInt; /* Where myFloat==13.45, and myConstInt==20 */
int i = (int)f;
int i2 = (int)(myFloat * myConstInt);

单步执行代码后,i==269,i2==268。造成差异的原因是什么?

最佳答案

浮点运算的精度比宣传的要高。但是一旦将它存储在 float f 中,额外的精度就会丢失。当然,在将结果向下转换为 int 之前,您不会失去第二种方法的精度。

编辑:查看此问题 Why differs floating-point precision in C# when separated by parantheses and when separated by statements?以获得比我可能提供的更好的解释。

关于c# - 为什么我的号码四舍五入不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509576/

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