Exor
WM Aracı
Kullanıcı
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
Merhaba
$islistesi = mysql_query("SELECT * FROM isler WHERE isdurum>='9' ORDER BY istarih ASC"); // isler tablosunda bulunan veriler çekiliyor.
if(mysql_affected_rows()){
while($il=mysql_fetch_array($islistesi)) {
$isid=$il['isid'];
$istanimi=$il['istanimi'];
$isadi=$il['isadi'];
$isfiyat=$il['isfiyat'];
$isfatura=$il['isfatura'];
$istarih=date('d.m.Y', strtotime($il['istarih']));
$isdurum=$il['isdurum'];
/////
$isfiyati=mysql_query("SELECT SUM(oafiyat) FROM odemeal WHERE oaisid='$isid'"); // İşin fiyatının olduğu odemeal tablosundan iş fiyatı çekiliyor.
$isf=mysql_fetch_array($isfiyati);
if($isfatura==0){ // Eğer fatura kesilmeyecekse fiyat direkt alınıyor.
$isinfiyati=$isf['SUM(oafiyat)'];
}else{ // Eğer fatura kesilecekse %18 Kdv eklenmesi için 1.18 ile çarpılıyor.
$isinfiyati=$isf['SUM(oafiyat)']*1.18;
}
$fiyattopla=mysql_query("SELECT SUM(ofiyat) FROM odemeler WHERE oisid='$isid' AND odurum=1"); // Yapılan ödemeler hesaplanıyor.
$ft=mysql_fetch_array($fiyattopla);
$toplamfiyat=$ft['SUM(ofiyat)'];
Kodların açıklamalarını yazdım. Şimdi sorunumu söyleyeyim.
Yapılan iş fiyatı: 9746 TL
Fatura KDV Tutarı: 1754.28 TL
Toplam Ödenmesi Gereken Tutar: 11.500,28 TL
Yapılan Ödeme: 11.500,28 TL
Bu durumda hesapta 0.00 TL gözükmesi gerekmekte fakat -0.00 TL gözüküyor.
Kodlarda olan $isinfiyati değişkeni (işin fiyatını hesaplıyor) ve $toplamfiyat (Ödenen fiyatı hesaplıyor) değişkeni ekrana yazdırdığımda ikisinde de 11500,28 fiyatını görüyorum. Fakat bu iki değişkeni çıkarma işlemi yaptığımda;
$hesap=$isinfiyati-$toplamfiyat;
Sonuç -1.8189894035459E-12 böyle bir rakam oluyor. Bu sorunu nasıl çözebilirim?
Not: Yuvarlama yapamıyorum çünkü fiyatlar baz alınarak ödeme ve fatura kesiliyor yani tam fiyat çıkması gerekmekte.
-
Üyelik
16.06.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
Bilgisayar mühendisi öğrencisi
-
Konum
Ankara
-
Ad Soyad
S** Y**
-
Mesajlar
3826
-
Beğeniler
2399 / 1874
-
Ticaret
97, (%100)
Hocam burada sanki mantık hatası var şöyle yapabilir misiniz?
$hesap=$toplamfiyat-$isinfiyati;
Exor
WM Aracı
Kullanıcı
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
Bu durumda da sonuç 1.8189894035459E-12 oluyor. Yani eksi yerine artı oluyor.
-
Üyelik
01.02.2018
-
Yaş/Cinsiyet
26 / E
-
Meslek
Yazılım öğrencisi
-
Konum
Antalya
-
Ad Soyad
O** Ş**
-
Mesajlar
603
-
Beğeniler
25 / 155
-
Ticaret
2, (%100)
if ($hesap == 0) {
$hesap = abs($hesap);
}
Sorununu tam anlamadım ama umarım budur :)
Bu arada eklemen gereken yer;
$hesap=$isinfiyati-$toplamfiyat;
if ($hesap == 0) { // toplama yaptığın işlemin altına eklemelisin.
$hesap = abs($hesap);
}
Birde sayı 0'dan yukarı isemi negatif dönüyor yoksa sadece sıfır'a eşitkenmi ?
Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.
-
Üyelik
01.02.2018
-
Yaş/Cinsiyet
26 / E
-
Meslek
Yazılım öğrencisi
-
Konum
Antalya
-
Ad Soyad
O** Ş**
-
Mesajlar
603
-
Beğeniler
25 / 155
-
Ticaret
2, (%100)
Help edit.
Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Hocam mobildeyim tam inceleyemedim kodlarınızı fakat sorununuz sanıyorum ki görünmeyen floating sayılarda.
Atıyorum 10.00000000'den 10.00000001' i çıkarırsanız sonuç -0.00 görünecektir fakat aslında sondaki 0dan kaynaklı bir durum.
Exor
WM Aracı
Kullanıcı
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
@AhmetKarabulut Sanırım bu dediginiz doğru