gpt4 book ai didi

c - 为什么我们在整数除法中单独转换为 "float"?

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

例如:

int number1 = 1, number2= 2;
float variable = (float)number1/(float)number2;

而不是这个,为什么我们不能只使用一次“float”?例如:

int number1 = 1, number2= 2;
float variable = (float)(number1/number2);

最佳答案

目标是避免整数除法带来的截断。这要求除法的至少一个操作数是 float 。因此,您只需要一次转换即可 float,但要在正确的位置。例如,

float variable = number1/(float)number2; // denominator is float

float variable = ((float)number1)/number2; // numerator is float

请注意,在第二个示例中,为清楚起见添加了一组额外的括号,但由于优先规则,它与

float variable = (float)number1/number2; // numerator is float, same as above

另请注意,在您的第二个示例中,

float variable = (float)(number1/number2);

转换为 float 是在整数除法之后应用的,因此这不会避免截断。由于表达式的结果无论如何都分配给了一个float,所以它就是

float variable = number1/number2;

关于c - 为什么我们在整数除法中单独转换为 "float"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674295/

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