当施放浮子或双重到INT时,是跨平台一致的行为
When casting a float or double to an int, is behaviour consistent across platforms?
例如,如果我有:
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。转换截断;也就是说,分数部分被丢弃。如果该行为是未定义的,则截断值无法在目标类型中表示。
。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- C++将浮点指针值舍入为小数位数
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 为什么在浮点中从大到小会引入更多的误差
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 通过网络、跨平台传递std::变体是否安全
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- C++Lua用户数据扰乱了Mathfu浮点值
- 将CHW格式的浮点向量转换为cv::Mat
- 算术运算的结果类似于:C浮点变量中的1/3
- 格式化浮点值:返回默认值
- 如何跨平台将二进制资源构建到程序中?
- 当施放浮子或双重到INT时,是跨平台一致的行为
- 如何检测跨平台浮点行为的差异
- 当功能采用签名的int时,将浮点参数施放为未符号
- 跨平台浮点一致性
- 跨平台/编译器一致的浮点数冲刺
- Google的Protocol Buffer在实践中对浮点类型的处理有多跨平台?