我想从标准输入中读取浮点数和双精度数,并保存其精度(浮点后精确相同的数字)并能够按原样输出(cout / printf)。最方便(最简单的方法)是什么?谢谢!
float f;
cin >> f;
cout << f;
使用setprecision
。
这是解决方案
cout<<setprecision(the precision you want to set here)<<variablename;
例如。如果要将变量var
的输出精度设置为5,请使用如下:
cout<<setprecision(5)<<var;
setprecision
是一个操纵者。了解有关操纵器here的更多信息。
它设置要使用的小数精度
格式化输出操作的浮点值。表现为成员精度在作为操纵符插入/提取的流上以n作为参数调用(可以在输入流或输出流上插入/提取)。
这是一个操纵器,在标题<iomanip>
中声明
由于输入具有未知的精度,最简单的方法是将它们作为字符串读取,而不是双精度/浮点数。
如果需要浮点值,则需要一个简单的字符串来进行双转换。
任何其他方法都可能会失败,因为您依赖于标准库完成从字符串到浮点的不完美转换。
后者无法区分0.4和0.40。