Подтвердить что ты не робот

Номер формата SQLite с 2 десятичными знаками всегда

У меня есть несколько таблиц в базе данных 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?

Спасибо.

4b9b3361

Ответ 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>

Ответ 2

Из-за того, как sqlite хранит номера внутри,

Вероятно, вы хотите что-то вроде этого

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

Ответ 3

В более старых версиях 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

Ответ 4

Вы можете попробовать Select Str (12345.6789, 12, 3)

отображает: "12345.679" (3 пробела, 5 цифр 12345, десятичная точка и три десятичные цифры (679). - округляется, если она должна усекаться (если только целая часть слишком велика для общего размера, в этом случае вместо этого отображаются звездочки.)

для всего 12 символов, с 3 справа от десятичной точки.