我一直在尝试存储产品的价格。所以我需要 2 个小数点,我认为数据类型应该是浮点数。
我正在使用Oracle 11gR2。以下是我写的。
create table test (
product varchar2(20),
price float(5,2));
它应该可以工作,但它给了我一个错误:ORA-00907:缺少右括号。
如果我输入 NUMBER 而不是浮点数,或者如果我写 float(5),它仍然有效。但是如果我写 float(5,2),它会导致错误。我相信我是对的,但我很困惑。
谁能给我一个简短的解释,说明发生了什么或我做错了什么。
根据手册,您只能指定float
的精度,而不能指定刻度。
引用手册:
无法指定比例
所以应该FLOAT(2)
但我希望您了解FLOAT
数据类型的所有缺点。这是一个近似类型。你不一定能拿回你投入的东西。
有关更多详细信息,请参阅以下内容:http://floating-point-gui.de
使用float
几乎总是错误的选择。