# php – Round up function

## Question:

The following problem occurred. We need a function to round the number up to hundredths. Initially, the function looked like this:

``````function round_up(\$value, \$precision) {
\$pow = pow ( 10, \$precision );
return ceil(\$value * \$pow) / \$pow;
}
``````

but there was a problem when passing the next value `round_up(740*0.006,2)` to the function, it gives 4.45 instead of 4.44. Further, the function was corrected in the following form:

``````function round_up ( \$value, \$precision ) {
\$pow = pow ( 10, \$precision );
return ceil(round(\$value * \$pow,2)) / \$pow;
}
``````

I solved the previous problem, but a new one also appeared when passing the next value to the function:

``````round_up(3208.34*0.006,2)
``````

it gives 19.25 instead of 19.26. Maybe someone has already encountered this? Thanks a lot in advance!!!

Try this:

``````function round_up ( \$value, \$precision ) {
\$pow = pow ( 10, \$precision );
return round(\$value * \$pow + 0.49999999999) / \$pow;
}
``````

Then, the first function you have given works correctly, but the error occurs due to the calculation error. I think that `pow ( 10, 2.0 )` will give not exactly 100, but something like 100.000001 If you need to round strictly to 2 characters, try

``````function round_up(\$value) {
return ceil(\$value * 100) / 100;
}
``````
Scroll to Top