当我在 Snowflake 中像这样计算 1 / 100,000,000 时:
SELECT (1 / 100000000)::NUMBER(38,12);
结果显示为0:
0.000000000000
即使精度足够高。
但是,当我删除两个零并除以 1 / 1,000,000 时,它就会按预期工作:
SELECT (1 / 1000000)::NUMBER(38,12);
然后我得到了正确的结果0.000001:
0.000001000000
这里发生了什么事?
当我在 Snowflake 中像这样计算 1 / 100,000,000 时:
SELECT (1 / 100000000)::NUMBER(38,12);
结果显示为0:
0.000000000000
即使精度足够高。
但是,当我删除两个零并除以 1 / 1,000,000 时,它就会按预期工作:
SELECT (1 / 1000000)::NUMBER(38,12);
然后我得到了正确的结果0.000001:
0.000001000000
这里发生了什么事?
执行除法时操作数具有以下数据类型:
分配:
因此,应在除法之前进行转换: