Jawaban:
coba ini
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Gunakan Str()
Function. Dibutuhkan tiga argumen (jumlah, jumlah total karakter untuk ditampilkan, dan jumlah tempat desimal untuk ditampilkan)
Select Str(12345.6789, 12, 3)
menampilkan: '12345.679' (3 spasi, 5 digit 12345, titik desimal, dan tiga angka desimal (679) - bulat jika harus dipotong, (kecuali jika bagian bilangan bulat terlalu besar untuk ukuran total, dalam hal ini tanda bintang ditampilkan sebagai gantinya.)
untuk Total 12 karakter, dengan 3 di sebelah kanan titik desimal.
it rounds if it has to truncate
... kecuali bagian integer terlalu besar untuk ukuran total, dalam hal ini tanda bintang ditampilkan sebagai gantinya. Ini disebutkan dalam dokumentasi untukSTR
. Berikut kutipan dari halaman itu:STR(1223,2) truncates the result set to **.
Secara umum Anda dapat menentukan ketepatan angka dalam SQL dengan mendefinisikannya dengan parameter. Untuk sebagian besar kasus, ini akan NUMERIC(10,2)
atau Decimal(10,2)
- akan menentukan kolom sebagai Angka dengan 10 digit total dengan ketelitian 2 (tempat desimal).
Diedit untuk kejelasan
Ini bekerja untuk saya dan selalu menyimpan dua digit pecahan
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1,00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
Beginilah cara anak-anak melakukannya hari ini:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123.46
DECLARE @test DECIMAL(18,6) = 0.456789
kemudian SELECT FORMAT(@test, '##.##')
kembali: .46
Bagaimana Anda mendapatkannya untuk menunjukkan angka nol: 0.46
?
Coba ini:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Lipat gandakan nilai yang ingin Anda masukkan (mis. 2.99) dengan 100
Kemudian masukkan pembagian dengan 100 hasil menambahkan 0,01 di akhir:
299.01/100
Ini akan memungkinkan total 10 digit dengan 2 nilai setelah desimal. Ini berarti dapat mengakomodasi nilai nilai sebelum desimal hingga 8 digit dan 2 setelah desimal.
Untuk memvalidasi, masukkan nilai dalam kueri berikut.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;