相关的MySQL文档指出,对于双倍:
允许值为- 2.2250738585072014E-308,0和2.2250738585072014E-308至1.7976931348623157E+308。
和
这些都是基于IEEE标准的理论极限。根据硬件或操作系统的不同,实际范围可能会稍微小一些。
我发现我的系统上的实际范围实际上更小了!是否有SQL查询或其他方法来找出双倍的实际最小值和最大值?
发布于 2011-08-05 17:04:48
如果您想要找到并证明您知道系统上的确切最大值,这里有一种方法可以在几分钟的执行时间内完成。
执行一个简单的循环,从值1开始并插入它。在每个循环中,将值乘以10,直到溢出时失败为止。最后是minWorkingValue和maxFailedValue。
现在执行第二个循环,在minWorkingValue和maxFailedValue之间插入一个值。如果它成功了,它就会成为新的minWorkingValue。如果失败,它将成为新的maxFailedValue。继续,直到maxFailedValue - minWorkingValue = 1。在结尾处,minWorkingValue是您可以插入的实际最大值。
作为另一种选择,如果您非常确定这些值可能在哪里,那么跳过第一步,手动设置minWorkingValue和maxFailedValue,然后直接到第二个循环。
https://stackoverflow.com/questions/6959411
复制相似问题