SQLite格式编号始终为2位小数

时间:2012-02-05 11:59:14

标签: sql sqlite

我在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中完成?

感谢。

4 个答案:

答案 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个。