在cin / cout和scanf / printf期间在C ++中保存float和double precision

问题描述 投票:1回答:3

我想从标准输入中读取浮点数和双精度数,并保存其精度(浮点后精确相同的数字)并能够按原样输出(cout / printf)。最方便(最简单的方法)是什么?谢谢!

printf scanf cout cin floating-accuracy
3个回答
0
投票
float f;
cin >> f;
cout << f;

0
投票

使用setprecision

这是解决方案

cout<<setprecision(the precision you want to set here)<<variablename;

例如。如果要将变量var的输出精度设置为5,请使用如下:

cout<<setprecision(5)<<var;

setprecision是一个操纵者。了解有关操纵器here的更多信息。

它设置要使用的小数精度

格式化输出操作的浮点值。表现为成员精度在作为操纵符插入/提取的流上以n作为参数调用(可以在输入流或输出流上插入/提取)。

这是一个操纵器,在标题<iomanip>中声明


0
投票

由于输入具有未知的精度,最简单的方法是将它们作为字符串读取,而不是双精度/浮点数。

如果需要浮点值,则需要一个简单的字符串来进行双转换。

任何其他方法都可能会失败,因为您依赖于标准库完成从字符串到浮点的不完美转换。

后者无法区分0.4和0.40。

© www.soinside.com 2019 - 2024. All rights reserved.