对于正值,int(doubleValue)保证小于或等于doubleValue

时间:2012-09-01 16:30:52

标签: c++ floating-point integer type-conversion

我知道应该避免这种情况,但不幸的是我必须在混合计算中使用整数和浮点数(double)。标题已经说明了这个问题: 只要没有溢出,以下代码是否可以保证与所有c ++浮点实现一起工作(无断言),无论数值是多少?

编辑:忘记提及值始终为正

double realSplit = seg.squareLength() / sqr(maxLength);
int split = realSplit; 
assert(realSplit-split >= 0.0); 

1 个答案:

答案 0 :(得分:7)

将浮点值转换为整数值会丢弃小数部分。对于大于或等于0的值,断言保持不变。对于小于0的值,它会采用另一种方式。