w3resource

PHP Math Exercises: Round a float away from zero to a specified number of decimal places

PHP math: Exercise-8 with Solution

Write a PHP function to round a float away from zero to a specified number of decimal places.

Sample Data :
(78.78001, 2)
(8.131001, 2)
(0.586001, 4)
(-.125481, 3)
-.125481

Sample Solution:

PHP Code:

<?php
function roundout ($value, $places=0) {
if ($places < 0) { $places = 0; }
$x= pow(10, $places);
return ($value >= 0 ? ceil($value * $x):floor($value * $x)) / $x;
}
echo roundout (78.78001, 2)."\n";
echo roundout (8.131001, 2)."\n";
echo roundout (0.586001, 4)."\n";
echo roundout (-.125481, 3)."\n";
echo roundout (-.125481);
?>

Sample Output:

78.79                                                       
8.14                                                        
0.5861                                                      
-0.126                                                      
-1 

Flowchart :

Flowchart: Round a float away from zero to a specified number of decimal places

PHP Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Find earliest and latest dates from a list of dates.
Next: Write a PHP function to convert Arabic numbers to Roman numerals.

What is the difficulty level of this exercise?



PHP: Tips of the Day

SQL injection that gets around mysql_real_escape_string()

Consider the following query:

$iId = mysql_real_escape_string("1 OR 1=1");    
$sSql = "SELECT * FROM table WHERE id = $iId";

mysql_real_escape_string() will not protect you against this. The fact that you use single quotes (' ') around your variables inside your query is what protects you against this. The following is also an option:

$iId = (int)"1 OR 1=1";
$sSql = "SELECT * FROM table WHERE id = $iId";

Ref : https://bit.ly/32q3bJ7