私はこれらの値を持っている:小数点の値を特定の値のoracleに置き換えるにはどうすればよいですか?例えば
9.0001
8.1556
1.0000
9.7345
2.0003
私は私の結果はそう(0.0001の間で - 0.9999)の範囲内の任意の10進値が
9.5
8.5
1.0
9.5
2.5
をBE-にしたい0.5
に変更する必要があります私はこれらの値を持っている:小数点の値を特定の値のoracleに置き換えるにはどうすればよいですか?例えば
9.0001
8.1556
1.0000
9.7345
2.0003
私は私の結果はそう(0.0001の間で - 0.9999)の範囲内の任意の10進値が
9.5
8.5
1.0
9.5
2.5
をBE-にしたい0.5
に変更する必要があります値が常に正になると仮定すると、次のようになります。
to_char(case trunc(x) = x then x else trunc(x) + 0.5 end, '99990D0')
の場合は、その記号に基づいて減算または加算を行う場合を追加します。
はあなただけfloor()
とceil()
機能を使用してこれを行うことができます:あなたが期待したものである
floor(9.0001) + (ceil(9.0001) - floor(9.0001))/2
9 + (10 - 9)/2
9 + 1/2
9.5
:
select floor(col) + (ceil(col) - floor(col))/2
from your_table
は値9.0001
を検討し、この式はどのように動作するかを確認するには。また、1.0000
の場合、この場合、天井がフロアに等しいので、値は1.0000
のままです。
は、私はあなたが値が常に正しようとしている
SELECT ROUND(15.193,1) ...
試してみてくださいと思いますか? – GurV