Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Liczba miejsc po przecinku
Forum PHP.pl > Forum > Przedszkole
Zielonkawy18
Witam, otóż prosta matematyka:

2000/31=64,516129032258064516129032258065

chcę uzyskać liczbę 64,51 czyli 2 miejsca po przecinku bez ŻADNYCH zaokrągleń. Funkcja round() odpada ( zaokrągla ) oraz number_format() to samo.

Pozdrawiam
dr_NO
To może na około?

testowo: http://arbre.pl/test.php;

kod:
  1. <h1>Testuj pehapy...</h1>
  2. <?php
  3. $wynik = 2000/31;
  4. $wynik_czesc = explode('.',$wynik);
  5. $wynik_dociety = $wynik_czesc[0].'.'.substr($wynik_czesc[1],0,2);
  6.  
  7. echo $wynik_dociety;
  8.  
  9. echo '<br /><br /><b>operacje na zmiennej $wynik_dociety</b><br /><br />';
  10. echo 'mnożenie(x2): <b>'.($wynik_dociety*2).'</b><br />';
  11. ?>


i funkcja do tego...

  1. <?php
  2. function zaokragl($wynik,$ile) { //pierwszy argument to jakiekolwiek wynik działania, drugi zaś, mówi ile znaków po przecinku ma być wydocznych.
  3. $wynik_czesc = explode('.',$wynik); //rozdziel wynik
  4. $wynik_dociety = $wynik_czesc[0].'.'.substr($wynik_czesc[1],0,$ile); //przytnij znaki po przecinku do: $ile
  5. return $wynik_dociety; //zwróć wynik.
  6. }
  7.  
  8. //dzialanie:
  9. $dzialanie = 2000/31;
  10. zaokragl($dzialanie,2);
  11.  
  12. ?>
czychacz
http://php.net/manual/en/function.round.php
abort
Jeśli z 64,516129032258064516129032258065 chcesz otrzymać 64,51 (a nie 64,52, które jest poprawnym zaokrągleniem), to:

  1. $x=64.516129032258064516129032258065;
  2. $desired = floor(100*$x)/100;


Oczywiście aż się prosi, aby obudować to w funkcję. A jak potrzebujesz obcinać N znaków po przecinku (dla różnych N), to też jest to wykonalne.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.