MySQL-使用小数点存储数字

MySQL-使用小数点存储数字,mysql,numbers,decimal,points,Mysql,Numbers,Decimal,Points,是否存在在数据库中存储带或不带小数点的数字的方法?用户可以将数字存储到数据库中,如10和10.1——在MySQL中存储数字时,我使用数据类型列decimal,因此在本例中,数据库中将存储10.00和10.10 但是我需要按用户存储数字的精确形式-因此在本例中为010和10.1 您可以在数据库级别解决它,还是我必须在应用程序级别进行编辑?您可以将用户输入的任何内容保存为VARCHAR,这样您就可以准确地存储他们输入的内容。然后,当您需要它时,您可以从数据库中加载它,并根据需要将其解析为相应的浮点值

是否存在在数据库中存储带或不带小数点的数字的方法?用户可以将数字存储到数据库中,如1010.1——在MySQL中存储数字时,我使用数据类型列decimal,因此在本例中,数据库中将存储10.0010.10

但是我需要按用户存储数字的精确形式-因此在本例中为01010.1


您可以在数据库级别解决它,还是我必须在应用程序级别进行编辑?

您可以将用户输入的任何内容保存为VARCHAR,这样您就可以准确地存储他们输入的内容。然后,当您需要它时,您可以从数据库中加载它,并根据需要将其解析为相应的浮点值。

您可以将用户输入的任何内容保存为VARCHAR,以便准确存储他们输入的内容。然后,当您需要它时,您可以从数据库中加载它,并根据需要将其解析为相应的浮点值。

一种方法是在执行select查询时忽略此前导零


一种方法是,在执行select查询时,忽略该前导零


案例中使用

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 (format(@number,0)=@number, format(@number,0),
  if (format(@number,1)=@number, format(@number,1), @number))

案例中使用

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 (format(@number,0)=@number, format(@number,0),
  if (format(@number,1)=@number, format(@number,1), @number))

这不是存储问题,而是显示问题。因此,它与数据库无关。如果用户真的输入了10.0,你想怎么做?显示你用来显示存储值的代码,这就是你的问题所在。我可以用代码来解决它,但我感兴趣的是,如果可能的话,我想用更清晰的方式来做-例如,直接在数据库中。它看起来可能不是,所以我必须为它编写自己的函数。这不是存储问题,而是显示问题。因此,它与数据库无关。如果用户真的输入了10.0,你想怎么做?显示你用来显示存储值的代码,这就是你的问题所在。我可以用代码来解决它,但我感兴趣的是,如果可能的话,我想用更清晰的方式来做-例如,直接在数据库中。看起来可能不是,所以我必须为它编写一个自己的函数。在我的国家,我们称之为“手臂受伤?割头!”治疗。在我的国家,我们称之为“手臂受伤?割头!”治疗。