gpt4 book ai didi

c - C 规范中 float 的最大位数

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:25 25 4
gpt4 key购买 nike

现在有人知道 float 的最大范围吗? (我的意思是除了 IEEE754 之外还有其他规范或使用非常大的浮点表示的奇异平台)。

我想知道这一点,因为我从基于 Semmle 的分析器中得到了这个错误:

sprintf(acKey, "Equity(0,%f)", dDate);

错误:此转换可能产生长度为 328 的字符串,超过分配的缓冲区大小 200

其中 acKey 是一个大小为 200 的本地字符数组。

谢谢

最佳答案

If the value of dDate is -0x1.fffffffffffffp1023, then the %f format specifier produces “-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000”, which contains 317人物。添加格式字符串中的其他十个字符和空终止符会得到 328 个字符。

-0x1.fffffffffffffp1023 是 IEEE-754 64 位二进制 float 中可表示的最大幅度有限负数。虽然它没有按照格式化的十进制数所建议的精度表示,但它确实表示了那个数字。

(C 标准可能允许稍微不同的显示,例如显示超过某个点的零而不是精确的数字。但是,显示的数字的数量应该相同。一个好的 C 实现将显示所有精确的数字.)

关于c - C 规范中 float 的最大位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20472780/

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