Как округлить число к числу шага на PHP и на JS?

Пример на PHP

$price = 242.54522003 // цена
$step = 1.00000000 // шаг цены
Должен быть результат: 242

Еще примеры:

$price = 242.54522003 // цена
$step = 0.00100000 // шаг цены
// 242.545

$price = 112.59920000 // цена
$step = 0.01000000 // шаг цены
// 112.59

$price = 112.59920000 // цена
$step = 10.00000000 // шаг цены
// 110

Округлять в меньшую сторону.


Ответы (1 шт):

Автор решения: Алекс Данилин

console.log(valStep(242.54522003,0.00100000))
console.log(valStep(112.59920000,10.00000000))
console.log(valStep(112.59920000,0.01000000))

function valStep(num, step) {
    let stepFloat
    if (step.toString().match('.') && step.toString().split('.')[1]) {
        stepFloat = step.toString().split('.')[1].length
    }
    if(stepFloat) {
        return   parseFloat(num - (num % step)).toFixed(stepFloat)
    } else {
        return parseInt(num - (num % step))
    }

}

→ Ссылка