[php] wyświetlanie zmiennych a round

0

Witam,
Kiedy chcę zaokrąglić zmienną poleceniem round, natrafiam na problem:

przykładowo:
$zmienna=39.999999;

$zmienna=round($zmienna, 2);

powyższe gwarantuje mi zaokrąglenie zmiennej do dwóch liczb po przecinku czyli
40 :-)

Ale czy jest możliwość żeby funkcja zaokrągliła zmienną do dwóch liczb po przecinku i wyświetliła ją z tymi dwoma miejscami po przecinku czyli 40.00 ??

Mam nadzieje, że dobrze zobrazowałem swój problem.
Proszę o pomoc!!

Pozdro,
Kichu

0

Mozesz sprobowac cos takiego:

$round = round($liczba*100)/100.0;

pozdrawiam
johny

0

Niestety - nie działa... chyba, że mi zaprezentujesz cały kod jak to zrobić, może ja jestem głupi i mi nie wychodzi :)

pozdro,
Kichu

0

sprntf("%01.2f",round($zmienna,2));

0
function roundto($liczba,$ile)
{
       $x=round($liczba,$ile);
    return   ( strpos($x,'.')>0 ? $x : $x.str_pad('.',$ile+1,'0'));
}

A takie cos dziala?

0

Ok teraz wszystko działa. Dziękuje bardzo Panom :) daliście rady :)

EOT :)

0

Ale ten kod dodaje 2 zera tylko do pelnych liczb.
Czyli liczbe 33.33 zostawi w spokoju, a liczbe 30 zamieni na 30.00
A co zrobic zeby liczbe 30.3 przerobil na 30.30 ?

Chodzi o to ze mam probram przeliczajacy kasiore.
I po dzieleniu i zaokragleniu do 2 miejsca po przecinku uzyskuje 3 rodzaje liczb
30
30.3
30.33
a chcial bym zeby sie wyswietlaly
30.00
30.30
30.33

Jak to zrobic ?

0

nie wiem ale może pomoże ci funkcja number_format ?

0

a będe miły i napisze koda :P

function costam($liczba)
{
	$liczba = round($liczba, 2);
	$dzies = floor($liczba);
	$przec = ($liczba-$dzies)*100;
	return (int)$dzies.'.'.str_pad((string)(int)$przec, 2, '0');
}

pisane z głowy

1 użytkowników online, w tym zalogowanych: 0, gości: 1