gpt4 book ai didi

c++ - 在 C/C++ 中可以用 float 准确表示的最大 uint64

转载 作者:行者123 更新时间:2023-12-05 03:17:56 25 4
gpt4 key购买 nike

<分区>

我知道浮点精度只有这么多位。毫不奇怪,以下代码认为 (float)(UINT64_MAX)(float)(UINT64_MAX - 1) 相等。我正在尝试编写一个函数来检测这种类型的(由于缺少适当的术语)“转换溢出”。我以为我可以以某种方式使用 FLT_MAX 但这是不正确的。执行此操作的正确方法是什么?

#include <iostream>
#include <cstdint>

int main()
{
uint64_t x1(UINT64_MAX);
uint64_t x2(UINT64_MAX - 1);
float f1(static_cast<float>(x1));
float f2(static_cast<float>(x2));
std::cout << f1 << " == " << f2 << " = " << (f1 == f2) << std::endl;
return 0;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com