Thread overview
double sayıdan dizgiye çevirirken ondalık basamağı nasıl ayarlayabiliriz
Feb 10, 2017
erdem
Feb 11, 2017
erdem
Feb 11, 2017
Abdullah
Feb 11, 2017
erdem
February 10, 2017

http://www.erdem.tk/resim/resim/doublesoru1.png

Yukarıdaki gibi fiyat bilgisi tutan verilerimiz var. Bu veriler double tipinde. Programdan baktığımız zaman şuna benzer çıktı veriyor.

Alıntı:

>

Fiyat = 4,25
Fiyat = 4,25
Fiyat = 2,25
Fiyat = 2,25
Fiyat = 0,8
Fiyat = 0,8
Fiyat = 4,25
Fiyat = 4,25
Fiyat = 1
Fiyat = 1
Fiyat = 0,8
Fiyat = 0,8
Fiyat = 1
Fiyat = 1

Yapmak istediğim bunların basamak sayısını ayarlamak. Bunu yapmanın başka bir yöntemi var mı bilmiyorum ama bana basitçe böyle önerdikleri için double sayıyı string'e çeviriyorum.

       auto fiyat = model.getValue(erişici, 1).getDouble();
       writeln("Fiyat = ", fiyat);
       hücreÇizici.setProperty("text", to!string(fiyat));

http://www.erdem.tk/resim/resim/doublesoru2.png

Ama dikkat ederseniz 1 ve 0,8 in yanındaki ondalık basamaklar kayboldu. Bunları '1,00' ve '0,80' şeklinde göstermenin bir yolu var mı acaba.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 11, 2017

Sanırım istediğin şey

   auto fiyat = model.getValue(erişici, 1).getDouble();
   writeln("Fiyat = ", "%.2f".format(fiyat));
   hücreÇizici.setProperty("text", "%.2f".format(fiyat));

Ek olarak öğrendiğim bir şey varsa o da ondalıklı sayıları (özellikle de para) hiçbir zaman ondalıklı olarak tutmamak :) Onun yerine int olarak tutmak mantıklı.

Şöyle ki. 1 Lira 100 Kuruş olduğu için integerları ekrana yazdırdığımızda aşağıdaki gibi bir çıktı alırız.

Fiyat = 425
Fiyat = 425
Fiyat = 225
Fiyat = 225
Fiyat = 80
Fiyat = 80
Fiyat = 425
Fiyat = 425
Fiyat = 100
Fiyat = 100
Fiyat = 80
Fiyat = 80
Fiyat = 100
Fiyat = 100

Fiyat bilgisini yukarıdaki gibi saklamak daha mantıklı olur.

Bir şirket için PHP ile yaptığım CRM ve muhasabe karışımı programda verileri PHP'ye yollarken 139.20 şeklinde floating gelen para miktarı mucizevi bir şekilde 139.19 a dönüşüyordu :)

intval(floatval("139.20") * 100)

Bunun yerine şimdilik bu sayıyı string olarak işliyorum önce sayıyı .2f formatter de olduğu gibi 2 ondalıklı bir biçime çeviriyorum . ve , gibi karakterleri temizliyorum tamsayıya çevirip saklıyorum.

Ek olarak 4.25 TL ye 18% vergi eklerken 5.015 TL şeklinde pekte istemediğimiz bir floating sayıya dönüşüyor. Fatura oluştururken bu 0.005 kuruşlar faturada birkaç kuruşluk sapmalara sebebiyet veriyordu.

Konuyla alakalı olarak

http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 11, 2017

Teşekkürler! :)

Bu şekilde bir değişkene atayıp kullanınca oldu.

       auto fiyat = model.getValue(erişici, 1).getDouble();
       auto yeniFiyat =  "%.2f".format(fiyat);
       hücreÇizici.setProperty("text", yeniFiyat);

[Bu arada resmi aslında ortalamak istemiştim. Nasıl yapılacağını bilen var mı acaba? ]

<right]http://www.erdem.tk/resim/resim/doublesoru3.png>

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 11, 2017

Alıntı:

>

[Bu arada resmi aslında ortalamak istemiştim. Nasıl yapılacağını bilen var mı acaba? ]

Böyle daha güzel durdu : )

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 11, 2017

Alıntı (Abdullah):

>

Böyle daha güzel durdu : )

Evet gayet güzel durdu :)

Alıntı (zekeriyadurmus):

>

Fiyat bilgisini yukarıdaki gibi saklamak daha mantıklı olur.

       auto yeniFiyat =  "%.2f".format(cast (double) fiyat / 100);

Bu değişikliği de yaptım. Artık fiyatları kuruş olarak saklıyor. Ama kullanıcı açısından programda görsel bir değişiklik olmadı.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 12, 2017

Alıntı (erdem):

>

Bu değişikliği de yaptım. Artık fiyatları kuruş olarak saklıyor. Ama kullanıcı açısından programda görsel bir değişiklik olmadı.

Görsel bir değişiklik olmaması gerekir zaten. Burada amaç fiyatları saklarken ya da kuruş üzerinden hesap yaparken olası hataların önüne geçmek.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]