c++ - 算术表达式的显式(long long)转换返回 0
问题描述
long long
当我将一个值与一个值相乘时double
,我得到一个double
值。
要将其转换回long long
,我使用(long long)
.
但我得到的输出是0
,应该是什么时候10
。
这是我的代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n = 100;
printf("%lld",(long long)0.1*n);
return 0;
}
为什么是这样?我怎样才能解决这个问题?
解决方案
您正在将 0.1 转换为long long
. 这是0。这将起作用:
(long long) (0.1 * ...)
推荐阅读
- json - 在 React 中打印这个 JSON 数据的正确结构是什么?
- html - 在按钮 VMware Clarity 上对齐 SVG 图像
- c# - 如何修复 Unity 中函数的数值错误行为?
- ios - 需要在快速导航到另一个视图控制器时保持与 ble 设备的连接
- javascript - 使用 vuex 存储的 Laravel 验证总是响应错误 422
- powerbi - power bi 中的新加入者与离职者
- angular - 为什么茉莉不等我的承诺完成?
- typescript - 如何在 NestJS 中创建多个 Axios 实例
- apache-kafka - 如果未使用,我可以删除 kafka 服务器中的消息吗?
- laravel - 从 laravel 文档中,“侧边栏”和“内容”要求什么:单独的子文档或仍有待制作的东西?