は、私はすべてのヘルプは高く評価されているOracle最下位ゼロを含む数値の丸め方は?
Select round (123.50000065 , 4) from dual;
Output : 123.5
Required output: 123.5000
で次のSQLクエリを実行しようとしています。 ..
は、私はすべてのヘルプは高く評価されているOracle最下位ゼロを含む数値の丸め方は?
Select round (123.50000065 , 4) from dual;
Output : 123.5
Required output: 123.5000
で次のSQLクエリを実行しようとしています。 ..
ROUND(numeric_expressionに、長さ[機能])
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3);
出力:
123.9990 124.0000
代わりのround()
、小数型にto_char()
又はcast()
を使用:
select to_char(val, '999.9999'),
cast(val as decimal(10, 4))
You proba以下は
が必要な文字列に小数点以下4桁とフォーマットに値を丸め:Select to_char(123.50000065, '999999999990D9999') x from dual;
あなたが実際に数ラウンドあなただけしたい、つまりたくない場合はBLY to_char
required formatで使用したいです
Select to_char(trunc(123.50000065, 4), '999999999990D9999') x from dual;
数字を表示する形式を制御するには、正しい形式のマスクを適用して文字列にキャストすることができます。
あなたは、入力値の周りに必要な方法に応じて、これらのいずれかが有用である可能性:
with test(x) as (
select 123.50000065 from dual union all
select 123.00004 from dual union all
select 123.00005 from dual union all
select 123.00008 from dual
)
select x,
to_char(x, 'FM99999999.0000'),
to_char(trunc(x, 4), 'FM99999999.0000')
from test ;
結果:
X TO_CHAR(X,'FM9 TO_CHAR(TRUNC(
-------------------------- -------------- --------------
123,50000065000 123.5000 123.5000
123,00004000000 123.0000 123.0000
123,00005000000 123.0001 123.0000
123,00008000000 123.0001 123.0000
は "丸め" は、数学的概念です。値(サンプル入力あり)は123.5です。数学的に123.5000は123.5と同じです。それらはSTRINGSとだけ異なります。
123.5を123.5000と表示する1つの方法は、to_char()
にround()
をラップすることです。しかし、これはさらなる計算では使用できないことを意味します(実際にはオラクルはこれを許可します)。はのように、データ型の不一致エラーをスローするのではなく数値に暗黙の変換を行います。
多くの場合、クライアントソフトウェア(SQL Developer、SQL * Plus、Toadなど)の書式設定に対処する方が良い場合があります。ここでは、SQL * Plusでそれを行うことができる方法である。
SQL> Select round (123.50000065 , 4) as result from dual;
RESULT
----------
123.5
-- change the format of the numeric column "result"
SQL> column result format 999.0000
SQL> Select round (123.50000065 , 4) as result from dual;
RESULT
---------
123.5000
私はあなたのクエリから123.5
を得たかを確認することはできません。鉱山の結果123.50000000
私が正しく理解していれば、あなたの4桁の小数点以下の桁が必要です。 cast
select cast(123.50000065 as numeric(38,4))
出力しようとしない理由:
select cast(123.50000065 as numeric(38,6))
が出力:123.500001
あなたは123.00005、123.00004のために何を持っているでしょう、それは数を丸める場合
123.5000
テストを123.00008? – Aleksej