当我声明的所有内容都是双格式时,为什么我的输出不是双格式的?

问题描述

#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 作为输出

解决方法

没有双重形式。打印需要一种格式,一种输出结果方式的规范,无论你打印什么。

ostreams 确实有一个内部状态来决定给定参数的打印方式。基本上,这些可以通过输入/输出操纵器进行控制。有一些可用于控制浮点输出。

非详尽列表:

  • std::showpoint (noshowpoint) 打印(或不打印)小数点。

  • std::fixedstd::scientificstd::hexfloatstd::defaultfloat 可在几种常用符号之间进行选择。

  • std::setprecision(int n) 选择将出现多少个十进制数字。

默认精度为 6。

默认情况下(如果您没有设置正确的状态),如果您的双精度值(比如 8.0 或 8.5)可以很快打印出来,那么它就会打印出来,因此是 8(或 8.5)。

参见:https://en.cppreference.com/w/cpp/io/manip/setprecisionhttps://en.cppreference.com/w/cpp/io/manip/fixed

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...