首页 > 解决方案 > 类型转换不会产生预期的行为

问题描述

所以我想将一个整数打印为双精度数,所以我使用了类型转换。我不想更改结果变量的类型,因为我还想分配给它整数算术运算。这是我的代码:

int result {0};

result = 40 / 60;
cout << "Result casted to a double " << (double)result << endl;//output: 0

我在这里做错了吗?我是否正确地将结果转换为双精度,因为在这里它似乎不起作用。提前致谢。

标签: c++

解决方案


重要的是至少有一个计算元素是 float-double。要获得双重结果,您需要转换其中一个,如下所示:

    int result = 40;
    cout << "Result casted to a double " << (static_cast<double>(result)/60) << endl;

或者您可以直接将其创建为 float-double。

    double result2 = 40.0 / 60;
    cout << "Result casted to a double " << result2 << endl;

请注意,在上述情况下,其中一个元素必须具有“.0”以指示浮点双精度类型除以整数。否则,尽管 result2 是双精度数,但结果也将为零。


推荐阅读