我有一个问题,如何对BCMath的数字进行四舍五入?不知怎么的,这个代码不能正常工作-因为当我删除文本时,它变成了xxx.0000。我真的需要帮助,我不知道它应该如何正常工作。
代码
if (isset($_POST['licz'])) {
$liczba_a='1111111111111111111';
$liczba_b='1111111111111111100';
echo $a = round(bcsub($liczba_a, $liczba_b)).'<br>';
$diffcap = round($a);
//secure 1
$i = 0;
$count = round($diffcap);
$array= array();
while ($i < $count) {
echo 'array '.$b = bcadd($liczba_a, $i).'<br>';
array_push($array, $b);
++$i;
}
var_dump($array);
} else {
echo "Wpisz liczby.";
}
?>
我的输出
11 - this is the diff number
array 1111111111111111111
array 1111111111111111112
array 1111111111111111113
array 1111111111111111114
array 1111111111111111115
array 1111111111111111116
array 1111111111111111117
array 1111111111111111118
array 1111111111111111119
array 1111111111111111120
array 1111111111111111121
array(11) { [0]=> string(23) "1111111111111111111
" [1]=> string(23) "1111111111111111112
" [2]=> string(23) "1111111111111111113
" [3]=> string(23) "1111111111111111114
" [4]=> string(23) "1111111111111111115
" [5]=> string(23) "1111111111111111116
" [6]=> string(23) "1111111111111111117
" [7]=> string(23) "1111111111111111118
" [8]=> string(23) "1111111111111111119
" [9]=> string(23) "1111111111111111120
" [10]=> string(23) "1111111111111111121
" }
Assign运算符的优先级低于concatination。
echo 'array '.$b = bcadd($liczba_a, $i).'<br>';
^ it would be first operation.
^ it would be second opration.
你应该加括号
echo 'array '.($b = bcadd($liczba_a, $i)).'<br>';
但最好避免双重目的的操作。
$b = bcadd($liczba_a, $i);
echo 'array '. $b .'<br>';