非浮动价格的SQL数值数据是什么?

时间:2015-11-22 10:10:45

标签: php mysql sql

我在为我的价格选择正确的数字数据时遇到问题,因为我的国家/地区货币不使用浮点数。

示例:以我的国家/地区货币,我们不使用此- 12700.58-

example of our price: 127,000 (which is hundred twenty seven thousand)对我们来说。

那么哪个sql数据类型...应该使用?

由于

1 个答案:

答案 0 :(得分:2)

首先FLOAT/DOUBLE是非精确数据类型,因此您应该避免使用它。最好使用DECIMAL/NUMERIC,因为它们是准确的数据类型。

在你的例子中(只有整数)我会用简单的INT来存储价格:

CREATE TABLE tab(price INT UNSIGNED);

INSERT INTO tab VALUES (120000), (10);

千位分隔符127,000的值只是表示问题,应该在应用程序层中完成。如果您仍需要在数据库使用中格式化它:

SELECT FORMAT(price,0) AS formatted_price
FROM tab;

SqlFiddleDemo