c - 如何在c89中定义浮点双精度常量
问题描述
我有一个在 c89 中无效的表示中声明的常量的代码(历史项目的编译器选项)。
#define K_MAX_KCG_REAL 0x1.FFFFFFFFFFFFFp1023
我正在寻找在 c89 中有效的解决方案
我努力了
#define K_MAX_KCG_REAL 0x7FEFFFFFFFFFFFFF
但被解释为浮点值约为的整数。9.22e18。远非我需要的 1.79e308。声明双精度最大值的常数的最佳方法是什么?
解决方案
你要找的号码是179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.
如果DBL_MAX
在 中定义<float.h>
,您应该使用它。
使用许多编译器1.7976931348623157e308
就足够了。
如果编译器无法正确解析这些,您可以尝试(9007199254740991. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 1073741824. * 2048.)
推荐阅读
- java - 使用 compareTo 从 ArrayList 中删除重复项
- python - 尝试,尝试其他方法,除了最佳实践
- vba - 如果给定行中的值存在于另一个表中,则隐藏行
- elasticsearch - 我如何过滤一个存在于查询范围内的对象?
- react-native - react-native-maps 一种使用的谷歌地图
- c - OR运算不能计算原值?
- angular - Mapbox:如何添加 Hexbins 可视化?
- swift - 在 firebase 数据库中搜索数据
- android - 已签名的应用在本地分发,然后发布到 Google Play 商店
- sql - count() 和解释查询返回的列数不同