Php, ədəd say uzunluqu.

salam. php də 1.8 ədədini necə etmək olarki 1.8 deyil 1.80 kimi göstərsin. və ya 2 ədədini 2 kimi yox 2.00 və ya 2.1 deyil 2.10

Verilmiş cavablar və yazılan şərhlər (18 cavab var)

VendeTTA (2013-12-08 00:42:57)
[code]<em>NModern (Profil) (22:30, 07/12/2013 ) #34454 bu yazdigin funksiyada ne bash verdiyini izah ede bilersen?</em>[/code] 3 və 4-cü arqument işlədilməyib. Daha doğrusu susma halına görə saxlanılıb. 1-ci arqument bu substr($n, 0, is_int($n) || strlen((int)$n) >= 4 ? 3 : 4) 2-ci arqument isə budur 3 - strlen((int)$n) Funksiya nə edir ? Verilmiş rəqəmi is_int yoxlayır tam ədəddir ya yox, tam ədəddirsə və ya rəqəmi (int) ilə zorla tam ədədə çevirib saydıqda 4-dən böyük bərabərdisə verilmiş rəqəmin ilk 3 həddini kəsirik. Məs, verilmiş rəqəm = 3456.67 burda is_int qəbul eləmir, (int) çevirir olur 3456 strlen 4 sayır, demək ki ilk üçünü kəsmək lazımdır. Qalır 345. Alınır number_format(345, -1); Burda isə 4-cü arqument minliklərə ayırdığı üçün -1 heç bir rol oynamır. Çünki ədəd 3 rəqəmdən ibarətdir, minliklərə ayrıla bilmir. Qalan bütün hallarda isə verilmiş rəqəmi kəsmirik, çünki tam ədəd olmur. Və (int) ilə çevirdikdə belə sayı 4-dən kiçik olur. Demək ki, kəsməyə ehtiyac yoxdur. Olduğu kimi saxlayırıq. Məsələn, 34.5 olarsa rəqəm. substr heç nə etmir. (int) 34.5 verir 34. 3-2 qalır 1. Nəticə number_format(34.5, 1); => 34.5

NModern (2013-12-07 22:30:32)
bu yazdigin funksiyada ne bash verdiyini izah ede bilersen? bildiyim qeder ile number_format funksiyasinin 3cu ve 4cu arqumentleri noqte nin ve minliyi ayirmanin simvolunu gosterir. bunu nece islediyini basa dusmek isteyirem, faktiki olaraq 3-cu ve 4-cu arqumentlerin yerine yazmisan.

VendeTTA (2013-12-06 10:11:14)
Version 1.3 Bəzi ədədlər string kimi verildikdə funksiya düz işləmirdi. [code]function _Convert($n) { return number_format(substr($n, 0, is_int($n) || strlen((int)$n) >= 4 ? 3 : 4), 3 - strlen((int)$n)); }[/code]

VendeTTA (2013-12-06 10:08:22)
Çünki string kimi daxil etmisən rəqəmi. Amma bunu da həll etmək lazımdı.

NModern (2013-12-05 18:03:41)
bu funksiya 5435 uchun 5,435 qaytarir.

AZN (2013-12-05 01:11:14)
cox sagolun, sonuncu functionlariniz ishime yaradi, Allah sizden razi olsun. eziyyetinizi halal eleyin

VendeTTA (2013-12-04 13:07:55)
PHP-də çarəsiz heç nə yoxdu :) [code]function _Convert($n) { return number_format(substr($n, 0, is_int($n) || strlen((int)$n) > 4 ? 3 : 4), 3 - strlen((int)$n)); } [/code]

NModern (2013-12-04 12:30:32)
[code] <? function aaa($a){ $c = $a*100; if(strlen($c)>=5){ $b = substr($c, 0, 3); } else{ $d = pow(10,-2); $b = number_format($c*$d,2); $b = substr($b, 0, 4); } return $b; } echo aaa("5435")."<br/>"; echo aaa("20.1")."<br/>"; echo aaa(2.01)."<br/>"; echo aaa("1")."<br/>"; ?> [/code]

NModern (2013-12-04 12:00:03)
bes 20.1 nece olsun?

AZN (2013-12-04 02:48:10)
chox sagolun eziyyet chekmisiz haminiza teshekkur edirem ama bu yazdiqin kodlar menim ishimi tam gormur. ) yeni bunlar ancag tam ededleri ishleyir qaliqli ededlerde ise ishlemir. mene lazim idi meselcun 1.85 ise ele 1.85 qalsin 1 ise 1.00 olsun, ve ya 2354 ise 235 olsun. duzdur 1=1.00 ve 2354=235 alinir ama 1.85 de, 1.3545 ve ya 3543.22 oldugda artiq pass verir kodlar )

VendeTTA (2013-12-03 20:25:03)
Bu isə daha mükəmməl forması :) [code]function _Convert($n) { return number_format(substr($n, 0, 3), 3 - strlen($n)); }[/code]

VendeTTA (2013-12-03 20:18:38)
Bu da funksiya kimi [code]function _Convert($n) { return strlen($n) >= 3 ? substr($n, 0, 3) : number_format($n, 3 - strlen($n)); }[/code]

VendeTTA (2013-12-03 20:13:26)
[code]$numbers = array(1, 200, 300, 45756, 3456, 2, 22); foreach($numbers as $value) echo $value . ' = ' . (strlen($value) >= 3 ? substr($value, 0, 3) : number_format($value, 3 - strlen($value))) . '<br/>'; //Nəticə: 1 = 1.00 200 = 200 300 = 300 45756 = 457 3456 = 345 2 = 2.00 22 = 22.0[/code]

Emin Rəhmanov (2013-12-03 20:10:17)
Buyur. [code] function convert_to($a) { $len = strlen($a); if($len == 3) return $a; if($len > 3) return substr($a, $len-3); if($len < 3) return $a.'.'.str_repeat(0,(3-$len)); } echo convert_to(5).'<br/>'; // 5.00 echo convert_to(55).'<br/>'; // 55.0 echo convert_to(555).'<br/>'; // 555 echo convert_to(5555); // 555 [/code]

AZN (2013-12-03 15:22:29)
Mehman Elxanoglu, qardaş problem elә ordadırki әdәd dinamik deyil deyişgәndir, gah 3dәn böyük gahda 3dәn kiçik olur.

Mehman Elxanoglu (2013-12-03 11:57:32)
Yenə də number_format() funksiyasından istifadə etməklə: əgər ədəd 10-dan kiçikdirsə, echo number_format($a, 2); // 1.80 əgər ədəd 100-dən kiçik 10-dan böyük və ya bərabərdirsə, echo number_format($a, 1); // 27.0 qalan hallarda adi çap kimi...

AZN (2013-12-02 20:50:00)
üzr istəyirəm mən fikrimi çatdira bilməmişəm, suali səhv vermişəm . yeni mənə lazımdıki 1=1.00, 198=198. 1578=157 kimi göstərsin. yeni ədəd sayını 3 rəqəmli olaraq saxlasin 1=1.00 göstərirsə 198=198.00 kimi göstərməsin elə 198 kimi göstərsin

Emin Rəhmanov (2013-12-02 17:31:55)
Salam. number_format() funksiyasından istifade ede bilərsən bunun üçün. [code] $a = 1.8; $b = 2; $c = 2.1; echo number_format($a, 2); // 1.80 echo number_format($b, 2); // 2.00 echo number_format($c, 2); // 2.10 [/code]

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

Php bind_param xətası

Hazır PHP Saytlar

Qeydiyyat səhifəsində Check Login buttonu

Php, MySQL,CSS,HTML,Jquery,Ajax əla səviyyədə bilirəm lakin?

PHP xəbər saytı

Təcili kömək lazımdı