如果负数向上取整如果正数向下取整php?

x33g5p2x  于 11个月前  发布在  PHP
关注(0)|答案(5)|浏览(80)

如果负数向上取整,如果正数向下取整?我有
$rounded =1000

39528,65 round should be --> 39000

-30965,77 --> -31000
iyr7buue

iyr7buue1#

使用

更新

$value= ($number>0)  ? floor($number) : ceil ($number);

参考

  1. floor
  2. ceil
1mrurvl1

1mrurvl12#

试试看:

$rounded = 1000;
foreach(array(39528.65, -30965.77) as $num) {
  echo $num,' -> ', floor($num/$rounded)*$rounded,"\n";
}

输出:

39528.65 -> 39000
-30965.77 -> -31000
m1m5dgzv

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

i86rm4rw

i86rm4rw4#

你可以使用abs来获取绝对值,如下所示:

round(abs(-30965,77))

如果您的数字是负数,abs将返回正数。否则将返回正数。然后,您可以使用round(以您所需的精度)对值进行舍入。

ztmd8pv5

ztmd8pv55#

如果向上/向下取整意味着地板/天花板,那么直接的整型转换似乎可以完成这项工作

echo (int)( 8.5/8); //  1 = floor( 8.5/8)
echo (int)(-8.5/8); // -1 =  ceil(-8.5/8)

相关问题