php - 四舍五入到最接近和最小的 10 倍数

标签 php laravel

所以这是我的情况。我有几个数字,我想四舍五入到最接近和最小的 10 的倍数。

例如,介于51到59之间的值应四舍五入到50。

Input = 59 = >Respose = 50

Input = 51 => Respose = 50

我试过了
$number = round(53, -1);

这将给出 50,这是我想要的,但如果我尝试使用 56,它会给我 60。但在这里,我期待 50。有人可以帮我吗?

Accepted answer (In case some one is reading the question)



楼层($number/10)*10

但是,它给出的是我舍入并更改为的十进制值
$amount = (int)floor($amount / 10)*10;

最佳答案

使用 floor 代替;首先除以 10,然后将截断的结果相乘:
$number = floor($number / 10) * 10
使用 $number = round($number - 5, -1); 等解决方案可能会导致浮点边缘情况出现问题。 (有趣的是,早期的 Java 实现就是这样做的,结果是灾难性的。)

关于php - 四舍五入到最接近和最小的 10 倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41673933/

相关文章:

php - 如何检查哪个文件是函数?

javascript - 将数据从 MySQL 存储到 PHP 数组并以 JSON 返回

php - 可以在运行之前检查 imagecreatefromjpeg 是否会导致内存耗尽 fatal error 吗?

php - 在 Laravel 中使用 grpc,找不到 "Class ' Grpc\ChannelCredentials。”

javascript - 在 Laravel 中制作购物车

javascript - 日期 不专门在 laravel 中工作

php-ga 解析错误 : syntax error, 意外的 T_STRING

php - Messenger bot - 定时响应

javascript - 如何通过单击文本字段淡入通知

laravel - 如何在 laravel 5.7 中限制排队验证和密码重置通知电子邮件的速率