хранение денег составляет в mysql

Я хочу сохранить 3.50 в mysql таблицу. У меня есть плавание, в котором я храню его, но это хранит как 3,5, не 3.50. Как я могу заставить это иметь конечный нуль?

61
задан mskfisher 9 May 2012 в 16:33
поделиться

6 ответов

$("textarea").blur(function(event) {
    var maxLength = 3000000;
    var length = this.value.length;
    if (length > maxLength) {
        //reassign substring of max length to text area value
        this.value = this.value.substring(0, maxLength);
        alert(maxLength + ' characters allowed, excess characters trimmed');
    }
});

Этот jquery присоединяет анонимную функцию к текстам, это подрежет текст и предупредит пользователя, вы также можете прикрепить его к событию клавиатуры.

Для получения дополнительной информации см. http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html .

-121--2943626-

Я использую и FTP для передачи sftp, но это не открытый исходный код.

Можно установить флажок startBot . Возникла проблема с sftp-переносами .

-121--3171148-

Не храните денежные значения как плавающие, используйте тип DECIMAL или NUMERIC:

Документация для MySQL Numeric Types

EDIT & уточнение:

Плавающие значения уязвимы для ошибок округления, если они имеют ограниченную точность, так что, если вы не заботитесь о том, чтобы вы получили только 9.99 вместо 10.00, вы должны использовать ДЕСЯТИЧНЫЕ/ЧИСЛОВЫЕ, так как это фиксированные числа, которые не имеют таких проблем.

94
ответ дан 24 November 2019 в 17:02
поделиться

Имеет ли значение, хранится ли он как 3,5, 3,50 или даже 3,500?

Что такое на самом деле Важно то, как он отображается после получения из базы данных.

Или мне что-то здесь не хватает?

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

19
ответ дан 24 November 2019 в 17:02
поделиться

Для хранения значений вы можете использовать поле DECIMAL (10,2) , затем вы можете использовать FORMAT ] функция:

SELECT FORMAT(`price`, 2) FROM `table` WHERE 1 = 1
17
ответ дан 24 November 2019 в 17:02
поделиться

Если вы используете типы DECIMAL или NUMERIC, вы можете объявить их, например, как DECIMAL (18, 2), что заставит 2 десятичных знака, даже если они равны 0. В зависимости от ожидаемых больших значений вы можете изменить значение первого параметра.

5
ответ дан 24 November 2019 в 17:02
поделиться

Почему вы хотите сохранить «3,50» в своей базе данных? 3.5 == 3.50 == 3.5000 что касается базы данных.

Ваше представление и форматирование цифр / дат / и т. Д. Должно выполняться в приложении, а не в базе данных.

​​
5
ответ дан 24 November 2019 в 17:02
поделиться

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

Рассмотрите возможность использования вместо этого DECIMAL (10,2).

37
ответ дан 24 November 2019 в 17:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: