我想从standart输入中读取浮点数和双精度数,并保存其精度(浮点数后的完全相同的数字),并能够按原样输出(cout/printf)。做这件事最方便(也是最简单)的方法是什么?谢谢!
发布于 2016-06-01 01:30:03
float f;
cin >> f;
cout << f;发布于 2017-12-15 21:20:53
使用setprecision。
以下是解决方案
cout<<setprecision(the precision you want to set here)<<variablename;例如:如果您想将变量var的输出精度设置为5,请按如下方式使用:
cout<<setprecision(5)<<var;setprecision是一个操纵器。了解有关manipulators here的更多信息。
它设置要使用的小数精度
在输出操作中格式化浮点值。其行为类似于在作为操纵器插入/提取成员精度的流上使用n作为参数调用(可以在输入流或输出流上插入/提取成员精度)。
这是一个操纵器,在标头<iomanip>中声明
发布于 2017-12-19 01:07:49
由于输入的精度未知,因此最简单的方法是将它们作为字符串读取,而不是双精度/浮点数。
如果您需要浮点值,则需要将简单的字符串转换为双精度。
任何其他方法都可能会失败,因为您依赖于标准库完成的从字符串到浮点数的不完美转换。
后者无法区分0.4和0.40。
https://stackoverflow.com/questions/37552067
复制相似问题