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.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#2
(11-06-2019, Saat: 16:58)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(11-06-2019, Saat: 16:58)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
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. Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
PostgreSQL - Linux - Delphi, Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#5
(11-06-2019, Saat: 17:33)3ddark Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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. Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Bu fonksiyonu kullanmak sanırım daha doğru olacak. Teşekkür ederim.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
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
  Stored Procedure Nasıl Olmalı!!! 3ddark 7 772 14-01-2019, Saat: 11:01
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 2 Ziyaretçi