我需要从文件中读取浮点值。
我如何执行此操作的基本示例代码:
int main()
{
float number;
ifstream inputFile;
inputFile.open("testfile.dat");
inputFile >> number;
cout << number << endl;
return 0;
}
文件中的第一行是:13212.13131。但是当我喊出“数字”时,显示的数字是:13212.1
问题是小数部分被删除了,而在其他情况下,所有小数都被删除了。为什么会发生这种情况,我该如何解决呢?
从文件中读取数字的目的是对其进行数学计算。
首先,默认情况下,输出(对于std::cout
和printf
)的浮点精度为6个十进制数字。您需要std::setprecision()
使它打印更多的数字。但是您将达到float
类型的极限。
在大多数系统上,float是IEEE-754单精度,因此它只能存储大约7位有效数字。最接近13212.13131的是1.3212130859375E4。如果需要更高的精度,则必须使用double,在大多数系统上,double的精度约为15-16位。
阅读更多:浮点数学运算是否被破坏?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句