如何解决当我声明的所有内容都是双格式时,为什么我的输出不是双格式的?
#include <iostream>
using namespace std;
int main()
{
double d = 4,b,e;
cin >> b;
e = b + d;
cout <<e<< endl;
}
当我声明的所有内容都是双倍时,为什么我的输出不是双倍形式? 我已经尝试过对它进行类型转换,但它仍然无法正常工作。 当我给出 4.0 作为输入时,它给出 8 作为输出,但我希望它给出 8.0 作为输出。
解决方法
没有双重形式。打印需要一种格式,一种输出结果方式的规范,无论你打印什么。
ostream
s 确实有一个内部状态来决定给定参数的打印方式。基本上,这些可以通过输入/输出操纵器进行控制。有一些可用于控制浮点输出。
非详尽列表:
-
std::showpoint
(noshowpoint
) 打印(或不打印)小数点。 -
std::fixed
、std::scientific
、std::hexfloat
、std::defaultfloat
可在几种常用符号之间进行选择。 -
std::setprecision(int n)
选择将出现多少个十进制数字。
默认精度为 6。
默认情况下(如果您没有设置正确的状态),如果您的双精度值(比如 8.0 或 8.5)可以很快打印出来,那么它就会打印出来,因此是 8(或 8.5)。
参见:https://en.cppreference.com/w/cpp/io/manip/setprecision 和 https://en.cppreference.com/w/cpp/io/manip/fixed
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。