我的 Tickets table 应该使用什么数据类型?

What datatype should I use for my Tickets table?

我正在创建一个 table,用于在我的数据库中列出特定游览地点的门票价格。

价格需要以英国货币 (£0.00) 为单位,因为旅行团在英国进行。但是,在为价格列设置数据类型时,我不确定哪种数据类型可以适合英国货币的格式。所以我使用了 DOUBLE PRECISION 但是在尝试输入这些值时:

INSERT INTO `tbl_Tickets` (`Student_Price`, `Adult_Price`, `OAP_Price`, `Tourdate_id`)
VALUES ('£15.00', '£22.00' ,'£13.50', 1);

我得到一个 0,每个价格列。

我应该将我的价格列设置为哪种数据类型,以便正确适合英国货币?

您可能应该使用 fixed-point numeric 类型来存储任何国籍的货币,例如。 DECIMAL(5, 2) 最多可存储 999.99 的值。

正如 spencer7593 在下面指出的那样,没有必要在位数上吝啬,因为 DECIMAL type's storage format 非常紧凑。

你绝不能,绝不能,绝不能使用浮点数据类型来赚钱。您必须始终使用十进制基数,在本例中为 DECIMAL(N, 2),其中 N是值、它们的总和等的一些相当高的上限,例如 10,如果你是 运行 一家银行,则更多。 2 是因为你有 100 便士兑一英镑,但同样在某些情况下你可能想要更多。