Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Calculated Alanda Ondalık Sayısı Nasıl Belirlenir?
#1
Merhaba,
PostgreSQL veri tabanında bir hesaplama yaparak sonuç alıyorum. 
'% '||(t1.top*100 / t2.toplam) AS yuzdelik
Yukarıdaki işlem sonucunda tam sayı dönüyor. İki basamak ondalık hassasiyeti olması için hangi fonksiyon veya metodu kullanmalıyım.
Cevapla
#2
(11-06-2019, Saat: 16:58)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
PostgreSQL veri tabanında bir hesaplama yaparak sonuç alıyorum. 
'% '||(t1.top*100 / t2.toplam) AS yuzdelik
Yukarıdaki işlem sonucunda tam sayı dönüyor. İki basamak ondalık hassasiyeti olması için hangi fonksiyon veya metodu kullanmalıyım.

Merhabalar,

Test etme imkanım malesef olmadığı için bir örnek gördüm işinize yarar umarım.

1.
NUMERIC(precision, scale) 

2.
SELECT round( CAST(amount AS NUMERIC), 2) AS rounded_amount
FROM payment;

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
(11-06-2019, Saat: 17:07)hi_selamlar Adlı Kullanıcıdan Alıntı:
(11-06-2019, Saat: 16:58)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
PostgreSQL veri tabanında bir hesaplama yaparak sonuç alıyorum. 
'% '||(t1.top*100 / t2.toplam) AS yuzdelik
Yukarıdaki işlem sonucunda tam sayı dönüyor. İki basamak ondalık hassasiyeti olması için hangi fonksiyon veya metodu kullanmalıyım.

Merhabalar,

Test etme imkanım malesef olmadığı için bir örnek gördüm işinize yarar umarım.

1.
NUMERIC(precision, scale) 

2.
SELECT round( CAST(amount AS NUMERIC), 2) AS rounded_amount
FROM payment;

Kolay gelsin.

Çok teşekkür ederim.
Verdiğiniz kodu test etme imkanı bulamadım fakat aşağıdaki şekilde sorunu çözdüm.
to_char( 100.0 * t1.top / t2.toplam, '% 990D99' ) AS yuzdelik
Cevapla
#4
round(v numeric, s int) round to s decimal places round(42.4382, 2) sonuç = 42.44

trunc(v numeric, s int) truncate to s decimal places trunc(42.4382, 2) sonuç = 42.43

Ben hep yukarıdaki fonksiyonları kullanıyorum. Birisi yuvarlıyor diğeri ise olduğu gibi ondalık kısmı ne kadar isterseniz o kadarını alıyor.

Fonksiyonların tamamının olduğu kaynak. https://www.postgresql.org/docs/9.6/functions-math.html
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#5
(11-06-2019, Saat: 17:33)3ddark Adlı Kullanıcıdan Alıntı:
round(v numeric, s int) round to s decimal places round(42.4382, 2) sonuç = 42.44

trunc(v numeric, s int) truncate to s decimal places trunc(42.4382, 2) sonuç = 42.43

Ben hep yukarıdaki fonksiyonları kullanıyorum. Birisi yuvarlıyor diğeri ise olduğu gibi ondalık kısmı ne kadar isterseniz o kadarını alıyor.

Fonksiyonların tamamının olduğu kaynak. https://www.postgresql.org/docs/9.6/functions-math.html

Bu fonksiyonu kullanmak sanırım daha doğru olacak. Teşekkür ederim.
Cevapla
#6
firebirdde bu tür bir sorunu bölmeden önce her iki sayısıda cast komutuyla Numeric(10,2) çevirip bölmüştüm ve istediğim hassasiyete o şekilde ulaştım.
Topluluk mopluluk yok :/
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  POSTGRESQL Otomatik artan sıra no nasıl veriliyor? COMMANDX 8 3.272 23-06-2022, Saat: 16:42
Son Yorum: COMMANDX
  Stored Procedure Nasıl Olmalı!!! 3ddark 8 7.085 22-12-2019, Saat: 15:08
Son Yorum: loribnaczo
  Delphi & Firebase Database Entegrasyonu Nasıl Sağlanır ? yhackup 10 8.111 06-11-2019, Saat: 22:07
Son Yorum: hozlem
  Birden fazla alanda sorgulama Dostk 7 5.579 08-12-2017, Saat: 17:15
Son Yorum: Dostk



Konuyu Okuyanlar: 1 Ziyaretçi