Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;双不';行不通 为什么C++双关在我写的时候不起作用:< /P> int a, b; double c; a=11; b=2; c=a/b;_C++_Double - Fatal编程技术网

c++;双不';行不通 为什么C++双关在我写的时候不起作用:< /P> int a, b; double c; a=11; b=2; c=a/b;

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

根据我的说法,正确答案应该是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,/b,或(double)A/B,或者C++方式<代码> STATICE-CAST(A)/B;<代码>检查这个主题:C++在计算时不看结果的类型,它根据操作数的类型(这是整数)执行计算,然后转换结果。您可以通过确保其中一个操作数不是int来修复它。如果
static\u cast
对您来说太冗长,那么从int中获取double的快速方法是加法:
(a+0.0)