Трейлинг 0 после десятичной дроби - PullRequest
0 голосов
/ 31 мая 2019

В красном смещении я пытаюсь преобразовать строку в число с плавающей запятой и округлить до 2 десятичных знаков.Но когда я это делаю, в конце я получаю много конечных нулей.

select 
'1.99'
, '1.99'::float
, round('1.99'::float , 2)

Похоже, функция округления ничего не делает.Я хочу просто получить 1,99 как число с плавающей запятой, а не 1,9900000000000

Я использую DBeaver BTW

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Я думаю, что именно формат, который вы видите с помощью клиентского программного обеспечения, является проблемой здесь.

если вы действительно хотите переформатировать его внутри вашего sql (до 1.99), то вы можете использовать to_char вот так.

select to_char('1.99'::float,'99999D99');
0 голосов
/ 31 мая 2019

В большинстве языков round () изменяет значение , а не длину числа.

Похоже, вы должны использовать вместо этого trunc () или, возможно, также.

См .: Документы Redshift

...