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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在cin / cout和scanf / printf期间在C ++中保存float和double precision相关的知识,希望对你有一定的参考价值。

我想从标准输入中读取浮点数和双精度数,并保存其精度(浮点后精确相同的数字)并能够按原样输出(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。

以上是关于在cin / cout和scanf / printf期间在C ++中保存float和double precision的主要内容,如果未能解决你的问题,请参考以下文章

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

c++中scanf和cout有啥区别

scanf()和cin的区别,用scanf,则没有输出数据,为啥?

C++:cout和cin 标识符的含义是啥?他们后面分别使用啥运算符?各运算符的作用是啥?

PAT甲级 1028 List Sorting (25分)(cin cout 超时问题)

C输入输出