Ошибка сложить 2 значения в php [дубликат]
у Меня есть это значение: 250,59
и тот, другой, значение: 20,19
, когда мы оба,не это вычисление и возвращает копеек: 270
Ниже мой расчет:
$mo = $vl_mobra ; //VALOR 1 250,59
$mt = $vl_mat; //VALOR 2 20,19
$vt = $mo + $mt; //SOMA
, Посмотрите на несколько примеров:
20.000,66 //VALOR 1
10.000,99 //VALOR 2
30 // TOTAL
500,99 //VALOR 1
100,88 //VALOR 2
600 //TOTAL
function moedaPhp($str_num){
$vt = str_replace('.', '', $str_num);
$vt = str_replace(',', '.', $vt);
return $vt;
}
echo moedaPhp($vt);
1
Author: Chefe Druida, 2016-09-26
2 answers
Это вопрос повторил.
Десятичными числами в PHP разделяются .
(точки), и нет никаких разделителей тысяч.
<?php
function moedaPhp($str_num){
$resultado = str_replace('.', '', $str_num); // remove o ponto
$resultado = str_replace(',', '.', $resultado); // substitui a vírgula por ponto
return floatval($resultado); // transforma a saída em FLOAT
}
$mo = $vl_mobra ; //VALOR 1 250,59
$mt = $vl_mat; //VALOR 2 20,19
$vt = moedaPhp($mo) + moedaPhp($mt); //SOMA
echo $vt; // retorna: 270.78
См. мой ответ: https://pt.stackoverflow.com/a/152534/31016
1
Author: Allan Andrade, 2017-04-13 12:59:31
Используйте точку для десятичных знаков и не разделяйте тысячи.
$vl_mobra = 1250.59;
$vl_mat = 2020.19;
$mo = $vl_mobra ; //VALOR 1 250,59
$mt = $vl_mat; //VALOR 2 20,19
$vt = $mo + $mt; //SOMA
echo $vt;
2
Author: Carlos Fagiani Jr, 2016-09-26 19:37:14