Ответ 1
Вы можете использовать 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>
У меня есть несколько таблиц в базе данных SQLite, которая содержит тип столбца FLOAT, теперь я хочу получить значение с помощью Query и форматировать поле float всегда с двумя десятичными знаками, до сих пор я написал такой запрос:/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 Query? Как это можно сделать в SQLite?
Спасибо.
Вы можете использовать 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>
Из-за того, как sqlite хранит номера внутри,
Вероятно, вы хотите что-то вроде этого
select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;
В более старых версиях SQLite, в которых нет PRINTF
вы можете использовать ROUND
.
Например...
SELECT
ROUND(time_in_secs/1000.0/60.0, 2) || " mins" AS time,
ROUND(thing_count/100.0, 2) || " %" AS percent
FROM
blah
Вы можете попробовать Select Str (12345.6789, 12, 3)
отображает: "12345.679" (3 пробела, 5 цифр 12345, десятичная точка и три десятичные цифры (679). - округляется, если она должна усекаться (если только целая часть слишком велика для общего размера, в этом случае вместо этого отображаются звездочки.)
для всего 12 символов, с 3 справа от десятичной точки.