关于浮点数比较
  • 板块灌水区
  • 楼主expane
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/4/7 17:34
  • 上次更新2023/10/28 04:22:08
查看原帖
关于浮点数比较
337894
expane楼主2022/4/7 17:34

可以像这样把浮点数比较转化为整数比较。然后……浮点数基排(?)

for (double x = -100; x <= 100; x++) for (double y = -100; y <= 100; y++) {
    ll a = *(ll *)&x, b = *(ll *)&y;
    // 如果是负数,翻转除了符号位之外的所有位
    a ^= (a >> 63) & 0x7fffffffffffffff;
    b ^= (b >> 63) & 0x7fffffffffffffff;
    // 浮点数比较貌似与这样转化后的整数比较一致
    int res1 = x < y, res2 = a < b;
    if (res1 != res2)
        cout << x << " " << y << " " << res1 << " " << res2 << "\n";
}
2022/4/7 17:34
加载中...