gpt4 book ai didi

c++ - C/C++ 用十六进制初始化 double

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:20 25 4
gpt4 key购买 nike

我想用十六进制常量初始化一个 double。

double dbl = 0xFEDCBA9876543212;
printf("dbl: %llX\n", (uint64_t)dbl);

我希望看到的输出是:

dbl: FEDCBA9876543212

但我得到:

dbl: FEDCBA9876543000

为什么会这样,为什么要丢弃最后 3 个字节?

最佳答案

您正在使用一个 64 位值来初始化一个 double 值,它只包含 53 个有效位。有一位四舍五入,剩下的位直接丢掉。

关于c++ - C/C++ 用十六进制初始化 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25923238/

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