Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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_C99 - Fatal编程技术网

C 中间舍入

C 中间舍入,c,c99,C,C99,如果我有这样的情况 int a = 1; int b = 3; if ((a/b) > 0) ... 中间结果a/b是否因为四舍五入而受到浮点0.33或整数0的威胁?我来自VB6世界,在那里,这个条件将计算为false,因为当除以两个整数时,中间结果也将是一个整数,0>0=false 将两个整数相除会导致整数除法,即。E结果被截断。在这种情况下,它将始终计算为0。如果希望结果是浮点值,可以简单地将一个int除以一个float,将一个float除以一个int或两个float。通过将至少一

如果我有这样的情况

int a = 1;
int b = 3;

if ((a/b) > 0) ...

中间结果a/b是否因为四舍五入而受到浮点0.33或整数0的威胁?我来自VB6世界,在那里,这个条件将计算为false,因为当除以两个整数时,中间结果也将是一个整数,0>0=false

将两个整数相除会导致整数除法,即。E结果被截断。在这种情况下,它将始终计算为0。如果希望结果是浮点值,可以简单地将一个int除以一个float,将一个float除以一个int或两个float。通过将至少一个操作数强制转换为浮点类型,可以实现类似的行为。

这里都是整数……写入floata/b>0可以解决这个问题吗?或者这通常是怎么做的?@Joshua不,floata/b只会计算结果。您需要强制转换至少一个操作数,如floata/b。