我构建了一个包含一个名为Qty的实际列的表,但是当我尝试应用简单的数学运算时,它会忽略小数位。下面是一个例子:
SELECT QTY, QTY*2.0, QTY+1.0 FROM BOM
数量|数量*2.0|数量+1.0
-|-|
0,67|0.0|1.0
1000|2.0|2.0
0,50|0.0|1.0
Qty类型是REAL,这里是CREATE TABLE命令:
CREATE TABLE IF NOT EXISTS bom(
BOM_ID text NOT NULL,
RM_FK text NOT NULL,
QTY REAL NOT NULL,
PRIMARY KEY (BOM_ID, RM_FK))
1条答案
按热度按时间r6l8ljro1#
Sqlite使用Flexible Typing。
即使您将Qty声明为REAL,SQLite也会接受并存储任何值,甚至文本,如果可以,则将其转换为REAL,如果不能,则将其存储为文本。
正如@forpas所指出的,您在Qty中插入了‘0,67’,因为小数分隔符是‘’,所以SQLite无法对其进行实数转换。而不是‘,’。
因此,在进行计算时,它只使用‘,’之前的数字,而忽略‘,’之后的数字。