SQLite format number with 2 decimal places always

2019-02-02 23:15发布

I have some tables in a SQLite database that contains FLOAT column type, now i want to retrieve the value with a Query and format the float field always with 2 decimal places, so far i have written i query like this one :

SELECT ROUND(floatField,2) AD field FROM table

this return a resultset like the the following :

3.56
----
2.4
----
4.78
----
3

I want to format the result always with two decimal places, so :

3.56
----
2.40
----
4.78
----
3.00

Is it possible to format always with 2 decimal places directly from the SQL Query ? How can it be done in SQLite ?

Thanks.

3条回答
Melony?
2楼-- · 2019-02-02 23:29

You could try Select Str(12345.6789, 12, 3)

displays: ' 12345.679' ( 3 spaces, 5 digits 12345, a decimal point, and three decimal digits (679). - it rounds if it has to truncate, (unless the integer part is too large for the total size, in which case asterisks are displayed instead.)

for a Total of 12 characters, with 3 to the right of decimal point.

查看更多
再贱就再见
3楼-- · 2019-02-02 23:43

Due to the way sqlite stores numbers internally,

You probably want something like this

select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;
查看更多
混吃等死
4楼-- · 2019-02-02 23:47

You can use printf as:

SELECT printf("%.2f", floatField) AS field FROM table;

for example:

sqlite> SELECT printf("%.2f", floatField) AS field FROM mytable;
3.56
2.40
4.78
3.00
sqlite>
查看更多
登录 后发表回答