MySQL查找double的最小/最大值

时间:2011-08-05 16:19:45

标签: mysql sql double

The relevant MySQL documentation表示双打:

  

允许值为-1.7976931348623157E + 308至-2.2250738585072014E-308,0和2.2250738585072014E-308至1.7976931348623157E + 308。

  

这些是基于IEEE标准的理论限制。实际范围可能略小,具体取决于您的硬件或操作系统。

我发现我的系统实际范围实际上更小!是否有SQL查询或其他方法来找出double的实际最小值和最大值是什么?

1 个答案:

答案 0 :(得分:0)

如果您想查找并证明您知道系统的确切最大值,可以在几分钟的执行时间内完成此操作。

执行一个以值1开头的简单循环并插入它。在每个循环上将值乘以10,直到溢出失败。在这结束时,你有minWorkingValue和maxFailedValue。

现在执行第二个循环,在minWorkingValue和maxFailedValue之间插入一个值。如果成功,它将成为新的minWorkingValue。如果失败则变为新的maxFailedValue。继续,直到maxFailedValue - minWorkingValue = 1.最后,minWorkingValue是您可以插入的实际最大值。

作为替代方案,如果你非常确定你知道这些值可能在哪里,那么跳过第一步并手动设置minWorkingValue和maxFailedValue并直接进入第二个循环。