MySQL изменить значение десятичной дроби (19, 2) при вставке в базу данных - PullRequest
1 голос
/ 03 апреля 2020

Я создал таблицу, как вы видите ниже:

create table sample_tbl
(
    decimal_column decimal(19,2) null
);

сейчас, когда я вставляю в эту таблицу с помощью простой команды вставки:

insert into sample_tbl values (18.939);

MySQL сохраняет ее как 18,94 , как мне решить эту проблему? я хочу сохранить реальную стоимость: 18,93

Ответы [ 3 ]

1 голос
/ 03 апреля 2020

Введенное значение корректно округляется до 18.94. Вам нужно усечь значение до 2 десятичных знаков, поэтому используйте функцию truncate():

insert into sample_tbl values (truncate(18.939, 2));
1 голос
/ 03 апреля 2020
  1. Если это ДЕСЯТИЧНЫЙ (10, 2), он будет иметь в общей сложности 10 чисел, из которых 2 являются десятичными значениями (с 2 десятичным округлением, означающим, что 10.215 сохраняется как 10.22, а 10.114 становится 10.11).

  2. Если это ДЕСЯТИЧНЫЙ (10), он не будет иметь десятичных значений и будет округлен до целого числа.

  3. Если вы используете FLOAT или ДВОЙНАЯ ТОЧНОСТЬ вам не нужно указывать количество десятичных значений, но у него есть свой собственный fl aws.

1 голос
/ 03 апреля 2020
update sample_tbl set decimal_column =truncate(decimal_column,2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...