【问题标题】:How to divide PHP decimal numbers?如何除 PHP 十进制数?
【发布时间】:2016-01-03 12:17:01
【问题描述】:

我有这行代码:

$kaina =  $_POST["price"];
$html = file_get_html('http://www.lb.lt/lb_buhalteriniai_euro_ir_uzsienio_valiutu_santykiai?tp=LT&rs=&dte='.$data.'&ccy=USD');
$ret = $html->find('td', 6);

echo $ret . "</br>";

$aaa = str_replace(",",".",$ret);
// $aaa = "1.0900";

echo $aaa. "</br>";
echo bcdiv($kaina, $aaa,  4);

所以我有一个从特定网站获取数据的解析器。 $ret 回显 1,0962,所以我将 , 更改为 .让我能够除法和加小数。在最后一行中,如果我将 $kaina 和 $aaa 分开,则什么都没有显示,但如果我将 $aaa 更改为像“1.0900”这样的字符串,一切正常,不明白为什么。

【问题讨论】:

  • 您应该使用 var_dump() 来调试正在发生的事情,而不是回显您的结果。然后你不会有任何“什么都没有出现”,例如它还会显示一个值是否为 null、false 或类似的东西。回归主题:你可能应该看看type casting and type juggling
  • 请发布echo "$kaina / $aaa = " . bcdiv($kaina, $aaa, 4);的结果
  • print_r 输出 1.0962NULL 和 var dump - string(15) "1.0962" NULL,但它回显 1.0962

标签: php numbers decimal


【解决方案1】:

首先,var_dump/print_r 从 $aaa 变量中显示什么?

然后,尝试用intvalfloatval函数将字符串解析为数字,然后除法。然后,您可能希望使用 roundfloor / ceil 函数对数字进行四舍五入。 或尝试类似的方法:

bcdiv((string)$var1, (string)$var2, (string)$precision);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2019-12-26
    • 2016-07-11
    • 2015-06-25
    • 1970-01-01
    相关资源
    最近更新 更多