我在SQLite数据库中有一些包含FLOAT列类型的表,现在我想用Query检索值并将float字段格式化为2个小数位,到目前为止我已经编写了像这样的查询:< / p>
SELECT ROUND(floatField,2) AD field FROM table
返回结果集,如下所示:
3.56
----
2.4
----
4.78
----
3
我想将结果格式化为两位小数,所以:
3.56
----
2.40
----
4.78
----
3.00
是否可以直接从SQL查询格式化2个小数位?如何在SQLite中完成?
感谢。
答案 0 :(得分:47)
您可以将printf
用作:
SELECT printf("%.2f", floatField) AS field FROM table;
例如:
sqlite> SELECT printf("%.2f", floatField) AS field FROM mytable;
3.56
2.40
4.78
3.00
sqlite>
答案 1 :(得分:0)
由于sqlite在内部存储数字的方式,
你可能想要这样的东西
select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;
答案 2 :(得分:0)
在没有PRINTF
可用的旧版SQLite上,可以使用ROUND
。
例如...
SELECT
ROUND(time_in_secs/1000.0/60.0, 2) || " mins" AS time,
ROUND(thing_count/100.0, 2) || " %" AS percent
FROM
blah
答案 3 :(得分:-1)
您可以尝试选择Str(12345.6789,12,3)
显示:'12345.679'(3个空格,5个数字12345,一个小数点和三个十进制数字(679)。 - 如果必须截断,它会舍入,(除非整数部分对于总大小来说太大,在这种情况下,会显示星号。)
总共12个字符,小数点右边有3个。