MySQL - хранение чисел с десятичной точкой

существует ли способ хранить в базе данных числа с десятичной точкой или без нее? Пользователь может хранить в базе данных такие числа, как 10 и 10.1 — для хранения чисел в MySQL я использую столбец типа данных decimal, поэтому для этого примера в базе данных будут храниться 10.00 и 10.10.

Но мне нужно будет сохранить точную форму числа для пользователя - в данном случае 0 10 и 10.1.

Можно ли решить это на уровне базы данных или мне нужно редактировать на уровне приложения?


person user1946705    schedule 07.09.2011    source источник
comment
Это не проблема хранения, а проблема отображения. Таким образом, он не имеет ничего общего с базой данных. И что бы вы хотели сделать, если бы пользователь действительно ввел 10.0?   -  person Jon    schedule 07.09.2011
comment
Покажите код, который вы используете для отображения сохраненного значения, вот где ваша проблема.   -  person Jon    schedule 07.09.2011
comment
Я могу решить это в коде, но меня интересует, можно ли сделать это более понятным способом, например. прямо в базе. Похоже, что нет, поэтому я должен написать для него собственную функцию.   -  person user1946705    schedule 07.09.2011


Ответы (3)


использовать на case

case format(@number,0)=@number 
  when 1 then format(@number,0) 
  else 
  case format(@number,1)=@number 
    when 1 then format(@number,1) 
    else @number
  end 
end

or if

if (format(@number,0)=@number, format(@number,0),
  if (format(@number,1)=@number, format(@number,1), @number))
person ajreal    schedule 07.09.2011

один из способов - когда вы делаете запрос выбора, чтобы опустить этот начальный ноль

http://www.foscode.com/remove-trailing-zeros-mysql-decimal-fields/

person Haim Evgi    schedule 07.09.2011

Вы можете просто сохранить все, что пользователь ввел как VARCHAR, так что вы сохраните именно то, что он ввел. Затем, когда вам это нужно, вы можете загрузить его из БД и проанализировать его до соответствующего значения с плавающей запятой по мере необходимости.

person mjuarez    schedule 07.09.2011
comment
В моей стране мы называем это рукой болит? отрезать голову! лечение. - person Jon; 07.09.2011