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

Oracle数据库NUMBER(6,-2)存储最大值及负标度取值规则

Oracle NUMBER(P,S)负标度取值规则

首先明确NUMBER类型两个参数的通用判定逻辑,正负标度都适用:

  • P(精度):数值中有效数字的总位数(从最左侧第一个非零数字开始计数,末尾因标度补位的0不计入),取值范围1~38
  • S(标度):标记小数点相对于有效数字末尾的偏移位置:
    • S为正值时,小数点在有效数字末尾左侧S位,即保留S位小数,这部分规则和你已掌握的一致
    • S为负值时,小数点在有效数字末尾右侧|S|位,即数值会自动舍入到小数点左侧第|S|位,对应|S|位末尾必须为0

规则验证与示例

你给出的正标度示例NUMBER(6,2)计算结果完全正确:总有效数字6位,小数点左移2位,最大/最小值为±9999.99。
你之前推测的NUMBER(7,-2)取值也是正确的:S=-2代表舍入到百位,总有效数字7位,去掉末尾补位的2个0后有效数字为7个9,即9999999,乘以100(右移小数点2位)得到最大/最小值±999999900。

NUMBER(6,-2)的取值范围

按照规则计算:

  • 有效数字总长度为6位,最大有效数字为6个9:999999
  • S=-2代表小数点右移2位(即乘以10^2=100)
  • 最终可存储的最大数值为99999900,最小数值为-99999900

注意:所有写入该字段的数值都会自动舍入到百位,如果舍入后有效数字位数超过6位,会抛出精度溢出错误。例如尝试存入100000000时,舍入到百位为100000000,去掉末尾两个0后有效数字为1000000共7位,超出P=6的精度限制,无法写入。

内容的提问来源于stack exchange,提问作者Prateek Gautam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:33:28