Doğru Cevap
-
virgül ve noktalardan bölersin split ile sonra eğer 3 parça çıkarsa bölünmüş parça sayısı üçüncü parça küsürat diğer iki parçayı birleştirip database yaz derseniz sorun kalkar..
-
tapsin
$deger="1000,000,12";
$bol=split('[.,]',$deger);
$i=count($bol);
$say=strlen(substr($bol[$i-1],0));
$c=0;
if($say==2){
$s=count($bol)-1;
while($c<$s){
echo $bol[$c];
$c++;
}
echo ".".substr($bol[$i-1],0);
}12 yıl önce yazılmış -
tapsin
İster virgüllü ister noktalı DB ye veriyi direk kaydet sonra verilen sayının sonunda son hane 2 rakamsa onu küsürat olarak ekrana basar..
Yeterli mi ?12 yıl önce yazılmış -
tapsin
$deger="1500,450.458,25"; $bol=split('[.,]',$deger); $i=count($bol); $say=strlen(substr($bol[$i-1],0)); $c=0; if($say==2){ $s=count($bol)-1; while($c<$s){ echo $bol[$c]; $c++; } echo ".".substr($bol[$i-1],0); }else{ $s=count($bol); while($c<$s){ echo $bol[$c]; $c++; } }
Sonra iki hane olarak küsürat yazılmamışsa else den sonraki döngü işler12 yıl önce yazılmış -
huseyiniskender
Merhaba, verdiğiniz mantık ve kodlardan yararlanarak iki adet fonksiyon yazdım. Yardımlarınız için çok teşekkür ederim. Kodların son halini başkalarınada yararı olur düşüncesiyle paylaşıyorum. Tekrardan çok teşekkür ederim.
<?php $fiyat="1.958,50";// veya 1958,50 diye girilebilir. function donusum($deger){ $deger=str_replace(".","",$deger); $deger=str_replace(",",".",$deger); return $deger; } function turk_usulu($deger){ $toplam=number_format($deger, 2); $dizi=explode(".",$toplam); if(count($dizi)==2){ $sol=str_replace(",",".",$dizi[0]); $son=$sol.",".$dizi[1]; return $son; }else{ $son=str_replace(",",".",$toplam); return $son; } } echo donusum($fiyat); // İşlem yaparken veya veritabanına kaydederken donusum fonksiyonu. echo "<br />"; echo number_format(donusum($fiyat),2); // Yabancılar gibi yazdırmak için. echo "<br />"; echo turk_usulu(donusum($fiyat)); // Ekrana yazdırırken Türk usulü yazdırmak için. ?>
12 yıl önce yazılmış
-
Cevaplar
-
o kadar koda ne gerek var :)
function vdegis($veri) { $veri = str_replace(".","",$veri); $veri = str_replace(",",".",$veri); return $veri; }
yeterlidir.. adam 99,50 olarak girerse db ye 99.50 olarak kaydeder..
12.000,99 olarak girerse db ye = 12000.99 olarak kaydeder.. ben tum fıyatları bole yaparım vdegis(deger) bana float a cevırır..-
siyahbeyaz
$fiyat = "15.000,99"; $cevirfiyat = vdegis($fiyat); mysql_query("insert into testtablo (fiyat) values ($cevirfiyat)");
db de 15000.99 olarak görünüor.. buda dogru eklenmis demektir
float(10,2) seklinde yapilimi field in belkide sorunun orda :)
function para($veri = 0) { $veri = number_format($veri,2,",","."); return $veri; }
buda para formatında yazman ıcın12 yıl önce yazılmış -
huseyiniskender
Zahmetin için teşekkür ederim. Sorunum halloldu. Dediğin gibi field seçimide bir etkenmiş, float(8,2) şeklinde yapınca sorunum kalmadı.12 yıl önce yazılmış
-
-
merhaba arkadaslar benim sorunu 12.56 tl diye yazsin istiyorum ben boyle yaziyorum ve sitede baktigimda 1.256 tl degerini aliyor benim istedigim 12.56 tl boyle olsun kodlari veriyorumduzenliyen arkadasa minnetar olurum 2 aydir yapamadim php bilmiyorum tesekurler.....
function fiyat2($fi,$kur){
$temizle = str_replace(".","",$fi);
$temizle = str_replace(",","",$fi);
$kachane = strlen($temizle);
if ($kachane == 1){
$fiyat = $temizle;
} elseif ($kachane == 2){
$fiyat = $temizle;
} elseif ($kachane == 3){
$fiyat = $temizle;
} elseif ($kachane == 4){
$fiyat = substr($temizle,0,1).".".substr($temizle,1,3);
} elseif ($kachane == 5){
$fiyat = substr($temizle,0,2).".".substr($temizle,2,3);
} elseif ($kachane == 6){
$fiyat = substr($temizle,0,3).".".substr($temizle,3,3);
} else {
$fiyat = substr($temizle,0,1).".".substr($temizle,1,3).".".substr($temizle,4,3);
}
return $fiyat;
}
function fiyat($fi){
$p = explode(".",$fi);
$kachane = strlen($p[0]);
if ($p[1] == 00){
$fiyat = $p[0];
} else {
$fiyat = $p[0].".<sup>".$p[1]."</sup>";
}
$p = explode(".",$fiyat);
if ($p[1] == ""){ $p1[1] = ""; } else { $p[1] = ".".$p[1];}
if (strlen($p[0]) == 4){
$fiyat = substr($p[0],0,1).".".substr($p[0],1,3).$p[1];
}
if (strlen($p[0]) == 5){
$fiyat = substr($p[0],0,2).".".substr($p[0],2,3).$p[1];
}
if (strlen($p[0]) == 6){
$fiyat = substr($p[0],0,3).".".substr($p[0],3,3).$p[1];
}
if (strlen($p[0]) == 7){
$fiyat = substr($p[0],0,4).".".substr($p[0],4,3).$p[1];
}
if (strlen($p[0]) == 8){
$fiyat = substr($p[0],0,5).".".substr($p[0],5,3).$p[1];
}
return $fiyat;
}
===========================================================================================================
Buda forum kisminda gorunen input bunuda yukardakine gore nasil duzenleriz
<label>Fiyat</label>
<input name="fiyat1" type="text" id="fiyat1" onKeyDown="sayiMi();" value="<? echo fiyat($z['fiyat']); ?>" onFocus="this.value='';" onBlur="changeFormat(this)" class="form-control" placeholder="0.00" onkeyup="hesapla()" />