MySQL查找双精度数据库的最小/最大值

MySQL查找双精度数据库的最小/最大值,mysql,sql,double,Mysql,Sql,Double,声明对于双打: 允许值为-1.7976931348623157E+308至-2.2250738585072014E-308、0和2.225073858585072014E-308至1.7976931348623157E+308 及 这些是基于IEEE标准的理论极限。根据您的硬件或操作系统,实际范围可能会稍小一些 我发现在我的系统上,实际范围实际上更小!是否有SQL查询或其他方法来找出双精度计数器的实际最小值和最大值?如果您想找到并证明您知道系统上的确切最大值,这里有一种方法可以在几分钟的执行时间

声明对于双打:

允许值为-1.7976931348623157E+308至-2.2250738585072014E-308、0和2.225073858585072014E-308至1.7976931348623157E+308

这些是基于IEEE标准的理论极限。根据您的硬件或操作系统,实际范围可能会稍小一些


我发现在我的系统上,实际范围实际上更小!是否有SQL查询或其他方法来找出双精度计数器的实际最小值和最大值?

如果您想找到并证明您知道系统上的确切最大值,这里有一种方法可以在几分钟的执行时间内完成

执行一个简单的循环,从值1开始并插入它。在每个循环上,将值乘以10,直到溢出失败。最后是minWorkingValue和maxFailedValue

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


或者,如果您非常确定这些值可能在哪里,然后跳过第一步,手动设置minWorkingValue和maxFailedValue,直接进入第二个循环。

系统上的实际范围是多少?@David对于双255,0列,它将截断为1000000000000010901051724930857196452234783424494612613028642816.0。一定有更好的方法来找出这些值,而不是设置一个表并尝试插入大得离谱的值来查看被截断的值。文档中还指出,double的最大存储空间为8字节。这个数字略大于64位!另见此: