首页 > 解决方案 > 算术表达式的显式(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;
}

为什么是这样?我怎样才能解决这个问题?

标签: c++castinglong-long

解决方案


您正在将 0.1 转换为long long. 这是0。这将起作用:

(long long) (0.1 * ...)

推荐阅读