脚本宝典收集整理的这篇文章主要介绍了PHP中的错误乘法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,数字为46.29和10. $a变量中的第一个变量和$b变量中的第二个变量.
处理
echo $a * $b
echo 10 * 46.29
$a * 10
和
46.29 * $b
echo $a
echo $b
echo floatval($a) * floatval($b)
echo intval($a)
我也尝试使用bcmul,在这种情况下它将打印0.
include 'simple_html_dom.PHP'; $anno = $_POST['Anno']; $punti = $_POST['Punti']; $eta = $_POST['Eta']; $ggAss = $_POST['GgAss']; $ggParz1 = $_POST['GgParz1']; $ggParz2 = $_POST['GgParz2']; $ggParz3 = $_POST['GgParz3']; $pctDM = $_POST['PctDM']; $calcoloDM = $_POST['CalcoloDannoMorale']; $sPESEMediche = $_POST['SpeseMediche']; $spese = $_POST['Spese']; $htML = file_get_html('..\tabella'.$anno.'.PHP'); $rows = $html->find('tr'); // This VARiable is use to make sure that the correct number will be display. (there is a kind of offset in the output table). $const = 2; $i = 0; $cond = false; foreach ($rows as $row) { $j = 0; foreach ($row->children() as $cell) { if($cond) break; //This condITion is used to get punto base e indennità giornaliera if($i == 1) { $var1 = explode(" ",$cell->plaintext); $indennitaGG = $var1[10]; // here we can get indennità giornaliera } if($i == ($eta + $const) && $j == $punti) { $dannoBP = $cell->plaintext; $cond = true; break; } $j++; } $i++; } $calcIndGG = $indennitaGG * $ggAss; $newVar = $indennittaGG; echo 46.29 * 10; $calcIndParz1 = ($indennitaGG * 75 / 100) * $ggParz1; $calcIndParz2 = ($indennitaGG * 50 / 100) * $ggParz2; $calcIndParz3 = ($indennitaGG * 25 / 100) * $ggParz3; $dm = ($calcIndGG + $calcIndParz1 + $calcIndParz2 + $calcIndParz3) * $pctDM / 100; $totale = $dannoBP + $calcIndGG + $calcIndParz1 + $calcIndParz2 + $calcIndParz3 + $dm + $speseMediche + $spese;
这有什么问题?
//This change is used to transform the variable $indennitaGG in the right form. (with the . and not with the,). Then we can make the cast to float. $temp = str_replace(",",".",$indennitaGG); $indennitaGG = (float)$temp;
“官方”小数点分隔符(对于PHP)是一个点(.),这就是它无法进行乘法的原因.在您的语言中,它可能是逗号,但PHP使用点.
这就是PHP所说的(对于floatval($a)):
str_replace(",$a); str_replace(",$b); echo floatval($a) * floatval($b);
说明:
正如我所说,你使用的是十进制逗号,这是无效的. str_replace(原始,替换,主题)的作用是它在字符串(此处为:subject)中查找所有出现的原始内容,并将其替换为替换值.这导致用小数点替换该十进制逗号.
示例:40,3变为40.3
这仍然会导致String数据类型,这显然不是数字.要转换它,我们使用floatval(string)方法,它产生一个Float数据类型,它是浮点数的缩写,之后我们可以执行算术运算.
以上是脚本宝典为你收集整理的PHP中的错误乘法全部内容,希望文章能够帮你解决PHP中的错误乘法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。