大家好,我对编程和通过 Stroustrup 的“使用 C++ 进行编程、原理和实践”的工作方式相当陌生,并且在第 3 章末尾有一个要求您编写一段代码的练习时,我已经完全停顿了它会进行一些涉及 2 个数字的计算,其中包括找到数字的比率。不幸的是,这本书根本没有涉及到,我正在努力自己解决这个问题,只能为我的小脑袋找到先进的代码示例。
我现在的代码是:
double ratio;
if (val2 > val1)
ratio = (val2 / val1);
if (val2 < val1)
ratio = (val1 / val2);
cout << "The ratio of " << val1 << " and " << val2 << " is 1:" << ratio << '\n';
这适用于等于整数比率(例如 100 和 25)的数字,但是尽管我将变量“比率”设置为双精度,但在非整数比率的情况下,它会从答案中删除任何小数。谁能告诉我哪里出错了?
原文由 Leonjwolf 发布,翻译遵循 CC BY-SA 4.0 许可协议
除 整数 时,结果为 _整数_(使用整数算术):
并且当除以 浮点 值时,结果也是 _浮点数_:
在你的情况下
你有一个 _整数除法_,只有在执行 disvison 之后,它的结果才会被强制转换为
double
。您可以将val2
和val1
声明为double
:或 将 比率的至少一个参数转换为
double
: