gpt4 book ai didi

c++ - gnu C++ float 精度

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:56 24 4
gpt4 key购买 nike

我有一个关于 float 的简单问题,

double temp;  
std::cout.precision(std::numeric_limits<double>::digits10);
temp = 12345678901234567890.1234567890;
std::cout << (temp < std::numeric_limits<double>::max()) << std::endl;
std::cout << std::fixed << std::endl;
std::cout << temp << std::endl;

但是,我得到的输出是这样的,

1
12345678901234567168.000000000000000

temp的值还在double的范围内,但是,值完全不同了。我想知道我在这里做错了什么?

谢谢。

最佳答案

A double只有 15.95 位小数精度。您已经超过了值整数部分的位数,因此最后几位精度丢失,小数点后缺少任何有用的数字。

你应该看看这个:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html在对浮点值进行更多操作之前。

关于c++ - gnu C++ float 精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9525195/

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