下面是我正在使用的表达式:
float firstValue = (float) (5 / 2); //output is 2.0
float secondValue = (float) 5 / 2; //output is 2.5我在这里很难理解为什么这种类型的铸造会返回两个不同的值。我知道我可以只做(5f / 2f),但是我想用另一种类型的转换来进行一个表达式的实验。为什么firstValue 2.0和secondValue 2.5?.5去哪儿了?
发布于 2020-03-12 04:01:49
第一个是整数数学。这
float firstValue = (float) (5 / 2); 先除以五乘二,再得二。然后将两个转换为2.0。第二种是浮点数学。
float secondValue = 5f / 2; 它是2.5 (和float)。因为float除以int是float。
发布于 2020-03-12 07:36:30
第一步是做5/2 calculation.Then,在float.If中给出答案,进一步解释5和2是整数。在计算两个int数的int后,最后的答案由int返回。这里,最后的int应答(2)被转换为浮点应答。也就是说,这里使用的是更广泛的转换。因此,最后的答案是浮点数(2.0)中显示的整数值(2)。
2.浮动secondValue =(浮动)5/ 2;//输出为2.5,因为第一个值(5)被命名为浮点数,最后的答案是十进制本身
https://stackoverflow.com/questions/60647458
复制相似问题