c++ - 类型转换不会产生预期的行为
问题描述
所以我想将一个整数打印为双精度数,所以我使用了类型转换。我不想更改结果变量的类型,因为我还想分配给它整数算术运算。这是我的代码:
int result {0};
result = 40 / 60;
cout << "Result casted to a double " << (double)result << endl;//output: 0
我在这里做错了吗?我是否正确地将结果转换为双精度,因为在这里它似乎不起作用。提前致谢。
解决方案
重要的是至少有一个计算元素是 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 是双精度数,但结果也将为零。
推荐阅读
- python - Keras 双向 LSTM:传递了与 `cell.state_size 不兼容的初始状态`
- python - PXSSH 截断发送到远程服务器的命令
- excel - 通过字符串中的前几个字母进行条件格式[VBA]
- excel - 如何判断多个“IFS”条件是否为“TRUE”,而不仅仅是第一个匹配?
- node.js - 错误:无法读取配置文件 newrelic.js
- drupal-8 - 需要帮助从 Drupal 8 中删除规范的 rel 链接
- android-fragments - AndroidX Fragment recyclerview 出现在我的工具栏上,我需要 recyclerview 在工具栏下滚动
- javascript - 如何手动将 Formik 字段重置为空(反应)
- javascript - 如何在 iconCreateFunction 中显示自定义总计而不是集群计数
- python - 获取远程主机列表的时间