c++ - 将 double 类型值相乘会在输出中给出随机/垃圾答案

标签 c++ double

#include <iostream>
#include <string>
using namespace std;

int main() {

double age;
double months;
string name;

months = age*12.0;

cout << "Enter your name and age: ";
cin >> name >> age;
cout << "Hello " << name << " age " << age << " (" << months << " months)\n";

return(0);
}

程序要求输入姓名和年龄,并应将姓名和年龄放在句子中,并在括号中以月为单位显示年龄。 输出给出类似的东西: Hello Bob age 20 (1.82561e-313 months),但应该是 Hello Bob age 20 (240 months)。我没有使用 int 是因为我希望能够为年龄输入非 int 值。 我尝试了 12 而不是 12.0,并尝试声明一个变量并执行 months = age*m where m = 12.0 但结果是一样的。顺便说一句,无论变量 age 是什么,随机值都大致相同。为什么会这样?另外,这是链接时错误还是运行时错误?

最佳答案

您在初始化之前使用 age 进行乘法运算。您希望它能给您带来什么值(value)?

更改您的代码以先获取年龄,然后进行乘法:

cout << "Enter your name and age: ";
cin >> name >> age;
months = age*12.0;

cout << "Hello " << name << " age " << age << " (" << months << " months)\n";

关于c++ - 将 double 类型值相乘会在输出中给出随机/垃圾答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146772/

相关文章:

java - 整数到 double 变量

python - 在 C 中除以大(多)数(得到一个零,当我知道它不为零时)

java - 构造函数的控制松散

c - 释放指向 'double' 值的指针

c++ - 创建 SQLite 类

c++ - 为什么调用了错误的 ctor?

c++ - 使用 ffmpeg 代码的 RTSP 服务器有错误的 ffmpeg 版本?

c++ - 用 enum/int 覆盖函数

c++ - 构建 OpenCV 时出错 : "recompile with -fPIC"

C++ double 和舍入