Я пытался создать связанное с деньгами приложение, в котором пользователи могут выбирать свою валюту. Тип данных Mysql, который я пробовал, является десятичным (19,4). Теперь проблема в немногих валютах требует трех уточнений, а некоторые нуждаются в двух Например: oman rial нуждается в трех исправлениях. т.е. 1000 баиса = 1 оманиал. Следовательно, мои клиенты могут войти в 6.783 оманиала. Где мои клиенты в США будут нуждаться только в двух исправлениях: 100 центов = 1 доллар, и они могут войти в 5.50.Mysql datatype for money
Когда я вставляю эти две записи в свою базу данных, используя десятичную (19,4), она сохраняется как 6.7830 и 5.5000 соответственно.
Теперь настоящая боль возникает, когда мне нужно отображать их записи, так как я не хочу отображать это дополнительное 0 в оманиальной записи и это 00 в долларах США. Я также пробовал поплавок, но последняя цифра иногда округляется.
Существует ли какой-либо тип данных mysql, в котором я могу сохранить точную запись без каких-либо округлений или дополнительных нулей? Если такой записи нет, как я могу сделать ее ppssible?
Как я могу отслеживать соответствующие цифры? Нужно ли создавать новый coloumn для отслеживания количества цифр после периода. Т.е. мне нужно сохранить 3 в случае 6.783? – Rishad
Объявите тип столбца с точностью, которая будет использоваться валютой, для которой требуется большинство цифр точности. Все остальные валюты могут также использовать этот тип данных. Ваше приложение должно содержать логику для форматирования значений по-разному в зависимости от типа валюты. –
Обратите внимание, что 'DECIMAL (.., 4)' принимает только 1 байт больше, чем '(.., 2)', поэтому он не тратит много места. Я согласен с тем, что приложение может удалить ненужные конечные нули. –