如果负数向上取整,如果正数向下取整?我有$rounded =1000
$rounded =1000
39528,65 round should be --> 39000
与
-30965,77 --> -31000
iyr7buue1#
使用
$value= ($number>0) ? floor($number) : ceil ($number);
参考
1mrurvl12#
试试看:
$rounded = 1000; foreach(array(39528.65, -30965.77) as $num) { echo $num,' -> ', floor($num/$rounded)*$rounded,"\n"; }
输出:
39528.65 -> 39000 -30965.77 -> -31000
m1m5dgzv3#
这是根据问题的规格产生正确结果的答案。
$numbers = [39528.65, -30965.77]; foreach ($numbers as $num) { $rounded = $num > 0 && ($num % 1000) > 0 ? floor($num / 1000) * 1000 : floor($num / 100) * 100; print $num. ' is rounded to => '.$result.$rounded.'</br>'; }
输出:39528.65四舍五入=> 39000-30965.77四舍五入至=> -31000
i86rm4rw4#
你可以使用abs来获取绝对值,如下所示:
round(abs(-30965,77))
如果您的数字是负数,abs将返回正数。否则将返回正数。然后,您可以使用round(以您所需的精度)对值进行舍入。
abs
round
ztmd8pv55#
如果向上/向下取整意味着地板/天花板,那么直接的整型转换似乎可以完成这项工作
echo (int)( 8.5/8); // 1 = floor( 8.5/8) echo (int)(-8.5/8); // -1 = ceil(-8.5/8)
5条答案
按热度按时间iyr7buue1#
使用
更新
参考
1mrurvl12#
试试看:
输出:
m1m5dgzv3#
这是根据问题的规格产生正确结果的答案。
输出:
39528.65四舍五入=> 39000
-30965.77四舍五入至=> -31000
i86rm4rw4#
你可以使用abs来获取绝对值,如下所示:
如果您的数字是负数,
abs
将返回正数。否则将返回正数。然后,您可以使用round
(以您所需的精度)对值进行舍入。ztmd8pv55#
如果向上/向下取整意味着地板/天花板,那么直接的整型转换似乎可以完成这项工作