sql - Round a number and keep trailing zeroes in oracle -
okay, (say) have number 7836.721. want oracle query can give me following result :
7837.000 the number should rounded one's place , digits after decimal converted zeros.
what have used :
select round(7836.721,0) dual which gave me :
7837 any appreciated.
sounds need to_char...
select to_char(trunc(7836.721), '9999990.000') numbr dual; numbr ------------ 7837.000 this assume you're after 3 decimal places number, rather 7.12 going 7.00.
eta:
it seems strange requirement, here go:
with sample_data (select 123 numbr dual union select 123.12 numbr dual union select 123.1234 numbr dual union select 123.12345 numbr dual union select 0.12345 numbr dual union select 1.2345678901234567890123456789012345678901234567890123e50 numbr dual union select null numbr dual union select 1.23e-50 numbr dual) select numbr, round(numbr) || case when numbr != trunc(numbr) rpad('.', length(numbr -trunc(numbr)), '0') end new_numbr sample_data; numbr new_numbr ---------- -------------------------------------------------------------------------------- 123 123 123.12 123.00 123.1234 123.0000 123.12345 123.00000 0.12345 0.00000 1.23456789 1.2345678901234567890123456789012346e+50 1.23e-50 0.000000000000000000000000000000000000000
Comments
Post a Comment