2017-01-31 6 views
1

In einigen Fällen wird PHP das Dezimalzeichen nach der Operation zu ändern, ist hier ein Beispiel:PHP ändern das Dezimaltrennzeichen

<?php  
echo $amount; //21.960000 
echo $this->obj_vat->vat; //10.00 
$amount= $amount + ($amount * ($this->obj_vat->vat/100)); 
echo $amount; //24,156 
?> 

Warum die Dezimaltrennzeichens Änderungen an ‚‘?


Dies ist eine mehrsprachige Website. In der spanischen Version ist das Gebietsschema auf Spanisch (es_ES) eingestellt und das Dezimaltrennzeichen ist ','. Deshalb ändert sich.

Eine Lösung ist es, die LC_NUMERIC auf Englisch zu zwingen:

setlocale(LC_ALL, $locale); 

setlocale(LC_NUMERIC, 'en_GB'); 

Aber ich weiß nicht, ob dies eine richtige Lösung ist.

+0

ich die gleich Ich erhalte 24,156 – pravindot17

+0

Ich weiß nicht, was das Problem verursacht, alles ist in Ordnung. –

+0

Sie haben vergessen zu sagen, welche Version von PHP, welchen Webserver, welche Plattform und wie laufen Sie mit PHP (SAPI, CGI, etwas anderes). Alles was zählt. setlocale-Änderungen in einem Thread können Änderungen in anderen PHP-Threads verursachen. –

Antwort

0

Jeder denken ist funktionierte gut.

Zu Ihrer Information hat wie diese somthink versuchte

<?php  
echo $amount; //21.960000 
echo $this->obj_vat->vat; //10.00 
$amount= $amount + ($amount * ($this->obj_vat->vat/100)); 
echo (float) $amount; //24.156 
?> 
Verwandte Themen