c++;双不';行不通 为什么C++双关在我写的时候不起作用:< /P> int a, b; double c; a=11; b=2; c=a/b;
根据我的说法,正确答案应该是5,5,但它只写了5,有人知道如何解决这个问题吗?a也必须是双精度的,或者是浮点型的c++;双不';行不通 为什么C++双关在我写的时候不起作用:< /P> int a, b; double c; a=11; b=2; c=a/b;,c++,double,C++,Double,根据我的说法,正确答案应该是5,5,但它只写了5,有人知道如何解决这个问题吗?a也必须是双精度的,或者是浮点型的 double a,b,c; 这将起作用一个int除以另一个int得到一个int。这发生在商分配给double变量之前 要解决此问题,请将至少一个int值强制转换为double。换言之,改变这一点: c=a/b; 为此: c = static_cast<double>(a) / b; c=static_cast(a)/b; 因为INT/INT= INT,所以做一个*1
double a,b,c;
这将起作用一个
int
除以另一个int
得到一个int
。这发生在商分配给double
变量之前
要解决此问题,请将至少一个int
值强制转换为double
。换言之,改变这一点:
c=a/b;
为此:
c = static_cast<double>(a) / b;
c=static_cast(a)/b;
因为INT/INT= INT,所以做一个*1,/b,或(double)A/B,或者C++方式<代码> STATICE-CAST(A)/B;<代码>检查这个主题:C++在计算时不看结果的类型,它根据操作数的类型(这是整数)执行计算,然后转换结果。您可以通过确保其中一个操作数不是int来修复它。如果static\u cast
对您来说太冗长,那么从int中获取double的快速方法是加法:(a+0.0)
。