Çoğu kişi para formatında sorun yaşamaktadır. Kendimin de kullandığı basit ve kullanışlı para birimleri için fonksiyonu sizler ile paylaşacağım.
Özellikleri:
- 0.000....... -> 0.'dan sonra sonsuz 0'ı destekler
- 0.000...... -> 0.'dan sonra 15 0'a kadar rakamları düzgün bir şekilde yazdırır
- Rakamın sonunda oluşan çift 0'ı otomatik siler
<?php
function moneyFormat($number)
{
if (0.0000000009 >= $number) {
$l = number_format($number, 15, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.000000001 < $number && 0.000000009 > $number) {
$l = number_format($number, 12, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.00000001 < $number && 0.00000009 > $number) {
$l = number_format($number, 11, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.0000001 < $number && 0.0000009 > $number) {
$l = number_format($number, 10, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.000001 < $number && 0.000009 > $number) {
$l = number_format($number, 9, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.00001 < $number && 0.00009 > $number) {
$l = number_format($number, 8, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.0001 < $number && 0.0009 > $number) {
$l = number_format($number, 7, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.001 < $number && 0.009 > $number) {
$l = number_format($number, 6, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.01 < $number && 0.09 > $number) {
$l = number_format($number, 4, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} elseif (0.1 < $number && 0.9 > $number) {
$l = number_format($number, 2, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
} else {
$l = number_format($number, 2, ".", ",");
$l = strpos($l, '.') !== false ? rtrim(rtrim($l, '0'), '.') : $l;
return $l;
}
}
$fiyat = 89000789.89787540000;
echo moneyFormat($fiyat); // çıktı: 89,000,789.90 -> noktadan sonra çift sıfır oluşursa otomatik silenecektir
?>Not: Bu fonksiyon bol sıfırlı işlemler yapanlar için idealdir. Diğer yöntemlerin çoğu 0.00.......'dan sonra bol sıfırı desteklemez ve genellikle çıktı olarak 0.00 verir. Bu nedenle bu fonksiyon bol sıfırlı işlemler veya diğer işlemler için uygundur.