gpt4 book ai didi

c++ - 转换会奇怪地改变值(value)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:39 25 4
gpt4 key购买 nike

为什么在这个(糟糕的)C++ 代码片段中使用 a1=72 而不是 73

#include <iostream>
#include <string>

using namespace std;

int main (int argc, char* argv[])
{
double a = 136.73;
unsigned int a1 = (100*(a-(int)a));

cout << (a-(int)a) << endl; // 0.73
cout << 100*(a-(int)a) << endl; // 73
cout << a1 << endl; // 72 !
}

您可以在 http://codepad.org/HhGwTFhw 处执行它

最佳答案

如果提高输出精度,您会看到 (a - (int) a) 打印 0.7299999999999898

因此,truncation这个值(将其转换为 int 时获得的值)确实是 72

(更新了键盘 here .)

关于c++ - 转换会奇怪地改变值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7057056/

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