MySql POWER()大指数-DOUBLE值超出范围

时间:2020-09-01 13:38:05

标签: mysql

我在将python计算公式传输到MySQL视图时遇到问题,每当DOUBLE值超出POWER范围时,Mysql Power函数就会返回。

Python公式

exponent = (3 - 1) * 100000
my_value = 0.9654 - 0.9650
result = my_value / 10 ** exponent 

已转移到MySQL中,但是由于指数很大,所以每次DOUBLE值超出POWER范围时都会产生

SELECT 0.9604 / POWER(10, (4 - 3) * 100000);
result in DOUBLE value is out of range for POWER

将感谢您的帮助。 预先谢谢你

1 个答案:

答案 0 :(得分:2)

嗯? DOUBLE的上限是10 **308。您要的是10 **200000。应该溢出。

SELECT仅要求10 ** 100000,但这仍然太大了。)

实际上,计算机中的所有浮点“ DOUBLE”实现(至少从80年代后期开始)都具有相同的限制。更多讨论:https://en.wikipedia.org/wiki/Double-precision_floating-point_format#Exponent_encoding