gpt4 book ai didi

c++ - 从文件中读取浮点值会丢弃全部或部分小数部分

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:28 26 4
gpt4 key购买 nike

我需要从文件中读取浮点值。

我如何执行此操作的基本示例代码:

int main() 
{
float number;
ifstream inputFile;

inputFile.open("testfile.dat");

inputFile >> number;

cout << number << endl;

return 0;
}

文件中的第一行是:13212.13131。但是当我计算出“数字”时,显示的数字是:13212.1

问题是部分小数被丢弃,而在其他情况下,所有小数都被丢弃。为什么会发生这种情况,我该如何解决这个问题?

从文件中读取数字的目的是用它进行数学计算。

最佳答案

首先,输出的浮点精度(对于 std::coutprintf)默认为 6 位十进制数字。你需要std::setprecision()让它打印更多数字。但是您将达到 float 类型的限制。

在大多数系统上, float 是 IEEE-754 single precision ,因此它只能存储大约 7 位有效数字。离 13212.13131 最近的是 1.3212130859375E4 .如果您需要更高的精度,则必须使用 double ,在大多数系统上大约有 15-16 位精度。

阅读更多:Is floating point math broken?

关于c++ - 从文件中读取浮点值会丢弃全部或部分小数部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189011/

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