gpt4 book ai didi

c++ - 一个关于在 C++ 中转换整数的简单问题

转载 作者:可可西里 更新时间:2023-11-01 17:35:57 27 4
gpt4 key购买 nike

我有以下非常简单的代码-

int x=15000
int z=0.7*x
cout<<"z = "<<z<<endl;

我得到输出

z=10499

但是如果我把它改成

int z=0.7*15000
cout<<"z = "<<z<<endl;

输出

z=10500

我知道这与 z 将结果转换为 int 有关但为什么两种情况都不一样?

谢谢,

编辑 -我正在使用 ubuntu 的 10.10 GCC 构建

最佳答案

我想这是因为编译器,它在编译时简化了算术表达式。

第一个表达式是使用 FPU(具有有限精度)计算的,第二个表达式:通过预处理器(具有“无限”精度)计算的。尝试以 Release模式(或使用 -O2)运行程序,两个表达式的结果应该相同。

关于c++ - 一个关于在 C++ 中转换整数的简单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366309/

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