C ++计算2个数字的比率

Leonjwolf

嗨,大家好,我是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)的数字,它工作得很好,但是尽管我将变量“ ratio”设置为两倍,但在非整数比率的情况下,它会从答案中删除所有小数。谁能告诉我我要去哪里错了?

德米特里·拜琴科(Dmitry Bychenko)

当将整数相除时,结果是整数(使用整数算术):

11 / 2 == 5
11 % 2 == 1 /* remainder */

当除以浮点数时,结果也是浮点数

11.0 / 2 == 5.5
11 / 2.0 == 5.5
((double) 11) / 2 == 5.5

在你的情况下

 double ratio = (val2 / val1);

您有一个整数除法,并且只有在disvison执行后,它的结果才会被强制转换为double您可以声明val2val1double

double val1; 
double val2;

比率的至少一个参数强制转换为double

double ratio = ((double)val2) / val1; 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章