我在数据库中有两个表。每个都有一列(varchar255),该列的数目很小(0-30)。我只想将两者分开,结果如下:
如果一列的编号为6,575,而另一列的编号为1,291,则方程式应为5,09。输出 6 。其他/大多数结果输出 INF
数字来自数据库的foreach循环,这是图片中的代码:
echo $row["ton"]." - ".$row_w["weight"]." - ".$row["ton"] / $row_w["weight"]."<br>";
我尝试了bcdiv,但没有输出,并且is_infinite =1。我缺少什么?
答案 0 :(得分:0)
在进行除法之前,您需要使用floatval将值(char字符串)转换为float。
inf表示结果是无穷大的,因为您将0除以很小的数字是由于将char作为浮点数处理而产生意外值,因为程序无法正确理解小数方式。
示例:
$var = '578.23';
$float_value_of_var = floatval($var);
,您的代码可能是这样的(仅供参考):
echo $row["ton"]." - ".$row_w["weight"]." - ".floatval($row["ton"]) / floatval($row_w["weight"])."<br>";
答案 1 :(得分:0)
感谢@ aynber / @ Ash-b看到了我存储不好的值。
$a = str_replace(",", ".", $row["ton"]);
$b = str_replace("," ,".", $row_w["weight"]);
echo $row["ton"]." - ".$row_w["weight"]." - ".$a / $b."<br>";
。代替,
无法设置要回答的评论,但案例已解决。