当我声明的所有内容都是双精度形式时,为什么我的输出不是双精度形式?
why is my output not coming in double form, when everything that i've declared is in double form?
#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 确实有一个内部状态来决定给定参数的打印方式。基本上,这些可以通过 input/output 操纵器来控制。有一些可以用来控制浮点数输出。
非详尽列表:
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 and https://en.cppreference.com/w/cpp/io/manip/fixed
#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 确实有一个内部状态来决定给定参数的打印方式。基本上,这些可以通过 input/output 操纵器来控制。有一些可以用来控制浮点数输出。
非详尽列表:
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 and https://en.cppreference.com/w/cpp/io/manip/fixed