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。