prezzo formattato azzera i decimali su virtuemart

ciao, ho un problema con i prezzi dei prodotti su virtuemart prima se inserivo come prezzo 1.234,45 mi dava 1,23 poi inserendo i settaggi dello store con decimali ( , )e migliaia ( ) e inserendo questa funzione nel ps_product.price quando aggiorna il prodotto mi da il prezzo ben formattato ma azzera i decimali cioè se inserisco 1234,55 mi da 1234,00

questa è la funzione dove sbaglio mi date una mano? grazie dell'aiuto

   $i=$d["product_price"];
                 $pieces = explode(".", $i);
                 if(count($pieces)==2){

                     $p=$pieces[0].",".$pieces[1];
                 }else{
                     $p=$pieces[0];
                 }

                $a=number_format($p, 2, ',', '');
inviato 5 anni fa
surferbloggy
X 0 X

Usa il puntino come separatore per i decimali nel valore che inserisci.

Esempio: 1234.55

risposto 5 anni fa
s.rotondo
X 0 X

Oh dimenticavo, modifica così la tua porzione di codice:

   $i = $d["product_price"];

               /*
                 $pieces = explode(".", $i);
                 if(count($pieces)==2){

                     $p=$pieces[0].",".$pieces[1];
                 }else{
                     $p=$pieces[0];
                 }
               */

                $a=number_format($i, 2, ',', '');
risposto 5 anni fa
s.rotondo
X 0 X

grazie ma  niente anche se lo store è settato decimali (.) migliaia ( ) con questo codice che scrive a

$i=$d["product_price"];

                $a=number_format($i, 2, '.', '');

mi da sempre 1234.00 invece che 1234.45

cos'altro potrei fare?

risposto 5 anni fa
surferbloggy
X 0 X

grazie ma  niente anche se lo store è settato decimali (.) migliaia ( ) con questo codice che scrive a

$i=$d["product_price"];

                $a=number_format($i, 2, '.', '');

mi da sempre 1234.00 invece che 1234.45

cos'altro potrei fare?

Fai così: prima di continuare alla cieca vediamo se il dato non ha subito modifiche durante il suo percorso fino a quel preciso punto, fai un bel echo $i; subito prima dell'assegnazione di $a e fammi sapere cosa printa fuori ;)

risposto 5 anni fa
s.rotondo
X 0 X

grazie ho risolto! con i punti invece che con le virgole e con questo codice:

$a=number_format($d["product_price"], 2, '.', '');

ciao :bye:

risposto 5 anni fa
surferbloggy
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda