使用MySQL存储十进制数

时间:2011-05-19 09:12:04

标签: mysql sql

存储价值的最佳类型是什么:

48.89384-2.34910

其实我正在使用float

6 个答案:

答案 0 :(得分:5)

使用小数作为精确值。

注意:

  • ABS(纬度)< = 90
  • ABS(经度)< = 180

所以你可以为我们提供2种不同的类型

  • 纬度=十进制(x + 2,x)
  • 经度=十进制(y + 3,y)

x和y将是所需的精度。如果一个仪表是地球周长的1 / 40,000,000,那么像6-8这样的东西就足够了,这取决于你是在寻找街道还是完全停止的位置。

答案 1 :(得分:3)

如果您想要精确表示,并且知道适用的比例,则可以使用the decimal data type

答案 2 :(得分:2)

如果您使用货币,请使用DECIMAL类型。它没有浮点不准确。

答案 3 :(得分:2)

@MiniNamin
 如果您使用的是sql,那么它也可以通过放置DataType 数字(18,4)

来工作

答案 4 :(得分:0)

浮点的好处是它可以从非常小的数量扩展到非常大的数字。然而,这样做的代价是您可能会遇到舍入错误。

如果您确切知道自己需要和将要使用的准确度,那么您可以使用的数字/小数类型通常更合适。在创建时指定的准确度范围内工作时,它们不会遇到任何舍入错误。

答案 5 :(得分:0)

这取决于您使用的数字。如果这些数字是纬度和经度,并且如果您不需要精确的表示,那么FLOAT将起作用。使用DOUBLE PRECISION可获得更高的准确性。

但是对于确切的表示,请使用DECIMALNUMERIC。或INT或其中一种不同的尺寸,如果你永远不会有分数。