当施放浮子或双重到INT时,是跨平台一致的行为

When casting a float or double to an int, is behaviour consistent across platforms?

本文关键字:跨平台 施放浮 INT      更新时间:2023-10-16

例如,如果我有:

float f = 3.3456;
float g = 3.676455;
int j = f;
int k = g;

当f,g被施加到int时,所有平台上的行为是否相同?j,k永远是3?

例如,K会成为4个吗?分数部分总是被截断吗,还是曾经被舍入?

这与建议的问题略有不同的原因是,在这种情况下,转换是隐式的。请参阅标记的答案,因为这直接与"重复问题"中的标记答案相矛盾。

[...]该行为在所有平台上都相同吗?

是。是的。

来自N4659(我的重点 BOLD (:

7.10浮动综合转换[CORV.FPINT]

(1(可以将浮点类型的prvalue转换为整数类型的prvalue。转换截断;也就是说,分数部分被丢弃。如果该行为是未定义的,则截断值无法在目标类型中表示。