Mengapa SELECT 1/2 mengembalikan 0?

19

Seperti judulnya. Saya bahkan mencoba SELECT CONVERT(NUMERIC, 1/2)yang juga mengembalikan 0.

Saya menggunakan SQL Server 2008.

Maximus Anonim
sumber

Jawaban:

29

Mereka bilangan bulat.

Mencoba:

select 1.0/2.0;

Atau:

select CONVERT(NUMERIC,1)/CONVERT(NUMERIC,2);
Philᵀᴹ
sumber
14

Pertama, Anda mengeksekusi angka sebagai bilangan bulat, tetapi kedua, Anda juga belum mendefinisikan ketepatan dan skala dari tipe data numerik .

Coba ini:

SELECT CONVERT(NUMERIC(5, 2), 1.0/2.0)

atau bahkan

SELECT CONVERT(NUMERIC(5, 2), 1/2.0)
Taryn
sumber