我正在尝试使用两个变量完成数学运算:
$cv_moteur = $request->input('cv_moteur');
$distance = $request->input('nm_distance');
if($cv_moteur === '7CV'){
$taux = '0,401';
$rencontre_officiel->taux = $taux;
$rencontre_officiel->mt_indemnite_km = $taux * $distance;
但是当我调试时我得到了$ rencontre_officiel-> mt_indemnite_km = 0
为什么?我应该得到:40,1。有人知道我为什么得到0?
以下是调试的结果:
#attributes: array:10 [▼
"rencontre_id" => 38
"licencie_id" => "125"
"fonction_officiel_id" => "1"
"bareme_id" => "1"
"nm_distance" => "100"
"mt_prime" => "175.00"
"cv_moteur" => "7CV"
"taux" => "0,401"
"mt_indemnite_km" => 0
"statut_officiel" => ""
提前多多感谢。
答案 0 :(得分:1)
在您的情况下,$taux = "0,401";
被视为字符串。尝试使用floatval($taux)
之类的方法将其转换为数字会产生0
,因为正在使用","因为小数点在计算中无效(尽管在语言中有效)。
您需要做的是将","
转换为"."
:
$taux = floatval(str_replace(",",".", $taux));
然后,您应该可以致电:
$rencontre_officiel->mt_indemnite_km = $taux * floatval($distance);