You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebird是否支持FLOAT类型的Infinity值?如何获取该值?

Firebird获取FLOAT类型无穷大值的相关说明

官方规则边界

  • Firebird官方文档暂未提供直接获取FLOAT类型无穷大值的原生支持路径
  • 现有类型转换规则存在明确校验差异:DOUBLE PRECISION承载的±Infinity值强制转换为FLOAT类型时,会触发数值范围溢出报错;但同精度域下生成的NaN值可以正常转换为FLOAT类型

非官方实现方法

可绕开跨精度转换的校验拦截,在FLOAT类型的精度计算域内触发溢出直接生成目标值:

  • 生成FLOAT类型+Infinity:取IEEE单精度FLOAT的最大可表示有限值3.4028235E38,在FLOAT计算域内乘以10触发溢出,对应语句:
    select cast(3.4028235E38 as float) * 10 as float_pos_inf from RDB$DATABASE
  • 生成FLOAT类型-Infinity:在上述计算逻辑基础上将系数替换为-10,对应语句:
    select cast(3.4028235E38 as float) * (-10) as float_neg_inf from RDB$DATABASE

上述计算全程在FLOAT精度范围内完成,不会触发DOUBLE转FLOAT时的无穷值拦截校验,最终返回的结果为标准FLOAT类型的无穷大值。

内容的提问来源于stack exchange,提问作者Lukas Eder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 15:06:02