MySQL Поиск минимальных / максимальных значений для двойного - PullRequest
0 голосов
/ 05 августа 2011

В соответствующей документации MySQL указано, что для двойных чисел:

Допустимые значения: от -1,7976931348623157E + 308 до -2,2250738585072014E-308, 0 и от 2,2250738585072014E-308 до 1,77976931348623157E + 308.

и

Это теоретические ограничения, основанные на стандарте IEEE. Фактический диапазон может быть немного меньше в зависимости от вашего оборудования или операционной системы.

Я обнаружил, что фактический диапазон в моей системе на самом деле меньше! Есть ли SQL-запрос или какой-то другой способ узнать, каковы действительные минимальное и максимальное значения для double?

1 Ответ

0 голосов
/ 05 августа 2011

Если вы хотите найти и доказать, что знаете точное максимальное значение в системе, вот способ сделать это за несколько минут времени выполнения.

Выполните простой цикл, который начинается со значения1 и вставляет его.В каждом цикле умножьте значение на 10, пока не произойдет сбой при переполнении.В конце этого у вас есть minWorkingValue и maxFailedValue.

Теперь выполните второй цикл, который вставляет значение на полпути между minWorkingValue и maxFailedValue.Если это успешно, это становится новым minWorkingValue.Если это терпит неудачу, это становится новым maxFailedValue.Продолжайте, пока maxFailedValue - minWorkingValue = 1. В конце minWorkingValue - это фактическое максимальное значение, которое вы можете вставить.

В качестве альтернативы, если вы почти уверены, что знаете, где эти значения могут быть, пропустите первый шаг ивручную установите minWorkingValue и maxFailedValue и сразу на второй цикл.

...