gpt4 book ai didi

c++ - 为什么即使在从 int 类型转换为 double 之后,小数部分也没有小数?

转载 作者:太空宇宙 更新时间:2023-11-04 15:11:40 24 4
gpt4 key购买 nike

根据我收集到的信息,除非分子或分母是 float ,否则将小数分配给 double 将无法正常工作,(并且“无法正常工作”,我的意思是小数得到切断,我知道数字当然不能存储为分数)。但是,在将它们分配给另一个 double 变量之前,我已经尝试将整数类型转换为 double ,但它仍然不起作用。这没什么大不了的,因为我只需要做一些小的工作,但为什么会这样呢?

我添加了一些我在测试时编写的代码。

#include <iostream>
using namespace std;

double convert(int v) {
return v;
}

int main() {

int a = 5;
int b = 2;

double n;

n = convert(a) / convert(b);

cout << n << endl; // Decimals are stored

a = static_cast<double> (a);
b = static_cast<double> (b);

n = a / b;

cout << n << endl; // Decimals are cut off

a = (double) a;
b = (double) b;

n = a / b;

cout << n << endl; << // Decimals are cut off

double c = a;
double d = b;

n = c / d;

cout << n << endl; // Decimals are stored

return 0;
}

输出:

2.5
2
2
2.5

最佳答案

因为

a / b;

是整数除法(因为两个操作数都是int)即输出是一个整数,然后输出是否分配给double或其他任何东西与计算无关结果。

关于c++ - 为什么即使在从 int 类型转换为 double 之后,小数部分也没有小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56925243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com