Ограничить количество позиций после десятичной точки в MariaDB - PullRequest
0 голосов
/ 29 апреля 2020

В настоящее время я делаю небольшую базу данных MariaDB и столкнулся со следующей проблемой: я хочу сохранить число с плавающей запятой только с двумя точками после десятичной точки, но все, что находится до десятичной точки, не должно быть затронуто.

Для пример: 1.11; 56789,12; 9999,00; 999999999999.01 et c.

Я провел некоторое исследование, и сейчас я использую это:

CREATE TABLE mytable (
    mynumber DOUBLE(10, 2)
)

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

Так есть ли возможность ограничить количество позиций после запятой, не затрагивая позиции перед запятой или есть " номер по умолчанию "Я могу использовать для позиций до десятичной точки?

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете создать триггер, который перехватывает операторы INSERT и UPDATE и усекает их значение до 2 десятичных знаков. Однако обратите внимание, что из-за того, как числа с плавающей запятой работают на уровне машины, фактическое число может отличаться.

Числа с двойной точностью имеют точность до 14 значащих цифр, а не до определенного числа десятичных знаков. На самом деле вам нужно определить, какую самую большую ценность вы можете когда-либо хранить. Как только вы это сделаете, тип DECIMAL может быть более подходящим для того, что вы пытаетесь сделать.

См. Здесь для получения более подробной информации: https://dev.mysql.com/doc/refman/8.0/en/precision-math-decimal-characteristics.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...