2

テーブルに 0.0821 という値があり、それを 8.21 に変換したいと考えています。

私のSQLクエリはto_char(round(prdll_yr2.rate_chg_pct_qty *100 ),'9.99')

ただし、8.21 ではなく 8.00 が返されます。

4

1 に答える 1

6
to_char(round(0.0821 *100,2 ),'9.99')

to_char(round(prdll_yr2.rate_chg_pct_qty *100,2 ),'9.99')

ラウンドに表示する小数点以下の桁数がありません...省略した場合、デフォルトで0になります

または例として:

select to_char(round(0.0821 *100,2 ),'9.99') from dual;

結果: 8.21

select to_char(round(0.0821 *100),'9.99') from dual;

結果: 8.00

-----------------新しい情報が与えられました:------------------ ----------

to_char(round(0.0821 *100,2 ),'9,999.99')   

9,999.99形式 を、データベースで許可されている位取りと精度に等しくなるように調整します。したがって、値が Numeric(9,5) の場合、これは 4 つの先頭の数字とそれに続く 5 つの小数点以下の桁数を意味します。100 を掛けているため、最大値は小数点の 6 桁前にあるため、999,999.99 の形式と 3 番目の小数点は「丸め」になります。

于 2013-05-01T19:01:25.267 に答える