c – 为什么分配两个int在分配给double时不会产生正确的值?
作者:互联网
为什么在下面的代码片段中呢?
int a = 7;
int b = 3;
double c = 0;
c = a / b;
c最终得到的值是2,而不是2.3333,正如人们所期望的那样.如果a和b是双打,答案确实转为2.333.但肯定是因为c已经是双重的,它应该与整数一起使用?
那么为什么int / int = double不起作用?
解决方法:
这是因为您使用的是operator /的整数除法版本,它占用2个整数并返回一个int.为了使用返回double的double版本,必须至少将其中一个int显式转换为double.
c = a/(double)b;
标签:integer-division,c,variables,double 来源: https://codeday.me/bug/20190911/1803168.html