web-dev-qa-db-fra.com

Numéro de format SQLite avec toujours 2 décimales

J'ai quelques tables dans une base de données SQLite qui contient le type de colonne FLOAT, maintenant je veux récupérer la valeur avec une requête et formater le champ float toujours avec 2 décimales.

SELECT ROUND(floatField,2) AD field FROM table

cela retourne un résultat tel que le suivant: 

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

Je veux formater le résultat toujours avec deux décimales, donc: 

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

Est-il possible de toujours formater avec 2 décimales directement à partir de la requête SQL? Comment cela peut-il être fait dans SQLite? 

Merci.

23
aleroot

Vous pouvez utiliser printf as:

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

par exemple:

sqlite> SELECT printf("%.2f", floatField) AS field FROM mytable;
3.56
2.40
4.78
3.00
sqlite>
44
user1129665

En raison de la manière dont sqlite enregistre les numéros en interne,

Vous voulez probablement quelque chose comme ça

select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;
0
Appleman1234