7

C++11 4.9 浮点积分转换 [conv.fpint]:

浮点类型的纯右值可以转换为整数类型的纯右值。转换截断;也就是说,小数部分被丢弃。如果截断的值不能在目标类型中表示,则行为未定义。

如果值为-0.0,是否定义了行为?归结为“截断的值是否不能在目标类型中表示”。可以表示零。可以负零吗?在这种情况下,这两个零值是区分还是不区分?

4

1 回答 1

11

-0.0is的截断值,0可以用整数类型(包括无符号整数类型)表示。没有理由假设-0.0and的截断值0.0不同,就像-0.25and的截断值0.3不同一样。

于 2013-06-21T00:15:45.820 回答