我有一个包含数百个数字的 file.txt。
它们在点后有很多数字(最多 20 个),我需要在不截断的情况下获取所有数字,否则它们会在以下计算中引入错误。我用 matlab 生成了这些数字,因此它具有极高的精度,但现在我必须在我的程序中复制这种行为。
我是这样做的:
fstream in;
in.open(file.txt, ios::in);
long double number;
in>>number;
我也尝试过这个
in.precision(20);
in>>number;
在每个“>>”操作之前,但这是徒劳的
std::numeric_limits::min罢工>std::numeric_limits::digits10可以告诉您目标的实际精度是多少long double
.
如果您发现它不足以表示您的数据,您可能需要任意精度。您可以使用几个任意精度数字库,但它们都不是 C++ 中的标准库。
- boost::multiprecision
- GNU MP
- MPFR
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)