Soru nispeten basit. Orta sonuçları büyük ondalık olan 3 sütun hesaplamak gerekir ve SQL Server ile temelde herhangi bir döküm / dönüştürmek ne olursa olsun ondalık yuvarlama ile ilgili bir sorun haline çalışıyorum.
Örneğin, 1234/1233 olarak basit bir bölünme yapalım. Bir hesap makinesi 1.00081103000811 üretecektir. Ancak bunu SQL Server'da yaptığımda aşağıdakileri elde ederiz:
-- Result: rounded at 1.000811000... with trailing zeroes up until the 37 precision
SELECT CAST(CAST(1234 AS DEC(38,34))/CAST(1233 AS DEC(38,34)) AS DEC(38,37))
-- Result: rounded at 1.000811
SELECT CONVERT(DECIMAL(38,32), 1234)/CONVERT(DECIMAL(38,32),1233)
-- Correct result at 1,00081103000811
-- But this requires the zeroes to be put in manually when you don't
-- even know the precision of the end result
SELECT 1234.0/1233.00000000000000
Bu otomatik yuvarlama neden oluşur? Tablo çeşitli farklı değerler içerebileceğinden, bir sayının (int veya dec kısmı) ne kadar büyük olacağından emin olamadığınızda, delice uzun ondalık değerleri hesaplamanın en iyi yolu nedir?
Teşekkürler!