Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z number_format()
Forum PHP.pl > Forum > PHP
lukir
Mam takie coś:

Jedna z operacji klasy filtrującej:
  1. <?php
  2. class Filter {
  3. //zmienne klasy
  4. private $input;
  5.  
  6. //konstruktor klasy
  7. function __construct($input) {
  8. $this->input = $input;
  9. }
  10.  
  11. //operacja formatująca ceny
  12. public function price_format() {
  13.  $this->input = number_format($this->input, 2, ",", " ");
  14.  return $this->input;
  15. }
  16. }
  17. ?>


Fragment skrypu korzystającego z tej klasy:
  1. <?php
  2. $Filter = new Filter($items[$i]['price']); /*zmienna $items... to tablica powstała w wyniku pobrania danych z bazy MySQL - zmienna ta posiada wartość groszy */
  3. $price = $Filter->price_format();
  4. echo $price." zł";
  5. ?>


A to mi zwraca dla wartości zmiennej $items[$i]['price'] np.:
12.43 -> 12,00
3.21 -> 3,00

czyli jednym słowem zeruje mi grosze.
Może rozwiązanie będzie proste, ale jakoś nie mogę na nic wpaść.
Z góry dzięki za pomoc
phobos
a jak przegladniesz sobie ta tablice $items to masz grosze questionmark.gif bo moze to cos z zapytaniem mysql , kod wydaje sie w porzadku .
lukir
Tak - spróbowałem:

  1. <?php
  2. echo $items[$i]['price'];
  3. echo $price;
  4. ?>


i to zwraca wartości dla $items[$i]['price'] = 12.34:
$items[$i]['price'] = 12.34 - czyli OK
a $price - po konwersji = 12.00 - czyli czapa :/

jest mi to potrzebne, żeby odseparować tysiące itd:
12345.32 = 12 345.32

ale obcina te cholerne grosze...
phobos
skopiowalem ten kod i podstawilem za $items[$i]['price'] jakaś liczbe ( 12.34 , 1234.56 123456.78) i u mnie dzial bez zarzytów
lukir
Spoko - to w takim razie może to jakiś błąd logiczny gdzieś indziej w kodzie -> zobaczę, ale mimo tego dzięki za odpowiedź.
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.