0

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

编辑:忘了提到价值观总是积极的

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

1 回答 1

7

将浮点值转换为整数值会丢弃小数部分。对于大于或等于 0 的值,您的断言成立。对于小于 0 的值,则相反。

于 2012-09-01T16:38:05.310 回答