ARM上双精度浮点数转换为int64_t类型时发生溢出会发生什么?
创始人
2024-09-14 00:01:14
0

在ARM上,当双精度浮点数转换为int64_t类型时,如果结果溢出,则会发生未定义行为。为了避免这种情况,可以使用以下示例代码中的函数,将双精度浮点数转换为int64_t类型之前,先进行范围检查。

#include 
#include 

int64_t safe_double_to_int64_t(double d)
{
    if (d > std::numeric_limits::max() || d < std::numeric_limits::min() || std::isnan(d)) {
        throw std::out_of_range("double to int64_t conversion out of range");
    }
    return static_cast(d);
}

在上述代码中,我们使用了 std::numeric_limits 头文件中的 maxmin 函数来获得 int64_t 类型的最大值和最小值。如果要转换的双精度浮点数超出了这两个值之间的范围,或者为 NaN (不是数字),则会抛出 std::out_of_range 异常。如果无异常抛出,则使用 static_cast 将双精度浮点数转换为 int64_t 类型并返回结果。

相关内容

热门资讯

口控制4分钟!wepoke有插... 口控制4分钟!wepoke有插件微扑克私人局后台操控(好像真的有挂)-今日头条;1、玩家可以在微扑克...
德州版9分钟!wpk机制wpk... 德州版9分钟!wpk机制wpk德州胜利跟号有关(果真真的有挂)-微博客户端;wpk德州胜利跟号有关辅...
技巧8分钟!wpk发牌wpk德... 技巧8分钟!wpk发牌wpk德州(果真真的有挂)-百度知乎;1、实时wpk发牌开挂更新:用户可以随时...
轻量版六分钟!aapoker有... 轻量版六分钟!aapoker有后台操控微扑克软件发牌原理(的确是有挂的)-今日头条1、下载好微扑克软...
技巧7分钟!微扑克使用方法gg... 技巧7分钟!微扑克使用方法gg扑克正规(其实真的有挂)-微博客户端技巧7分钟!微扑克使用方法gg扑克...
辅助挂2分钟!wepoke软件... 辅助挂2分钟!wepoke软件透明挂检测wepoke辅助技巧(一般真的有挂)-小红书;该软件可以轻松...
德州4分钟!云扑克app辅助w... 德州4分钟!云扑克app辅助wpk俱乐部软件(就是真的有挂)-知乎一、云扑克app辅助软件透明挂的定...
安卓版本3分钟!wpk有德州微... 安卓版本3分钟!wpk有德州微扑克辅助透视(都是真的有挂)-哔哩哔哩;1)德州微扑克辅助透视辅助挂:...
免费八分钟!wpk俱乐部机器人... 免费八分钟!wpk俱乐部机器人WPK透视辅助(本来真的有挂)-知乎1、很好的工具软件,可以解锁游戏的...
AI3分钟!德扑ai软件购买p... AI3分钟!德扑ai软件购买pokerrrr2辅助神器(果然真的有挂)-哔哩哔哩;1、AI3分钟!德...