MySQL - хранение чисел с десятичной точкой - PullRequest
2 голосов
/ 07 сентября 2011

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

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

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

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

используйте на 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

или if

if (format(@number,0)=@number, format(@number,0),
  if (format(@number,1)=@number, format(@number,1), @number))
0 голосов
/ 07 сентября 2011

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

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

0 голосов
/ 07 сентября 2011

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

...