﻿ PHP Array Exercise: Floor Decimal numbers with precision - w3resource

# PHP Array Exercises : Floor decimal numbers with precision

## PHP Array: Exercise-18 with Solution

Write a PHP function to floor decimal numbers with precision.

Note: Accept three parameters number, precision, and \$separator
Sample Data :
1.155, 2, "."
100.25781, 4, "."
-2.9636, 3, "."

Sample Solution:

PHP Code:

<?php
// Define a function named 'floorDec' that rounds down a decimal number to a specified precision using a given separator
function floorDec(\$number, \$precision, \$separator)
{
// Split the decimal number into integer and fractional parts using the specified separator
\$number_part = explode(\$separator, \$number);

// Replace a portion of the fractional part to achieve the desired precision
\$number_part[1] = substr_replace(\$number_part[1], \$separator, \$precision, 0);

// If the integer part is non-negative, use 'floor' to round down the fractional part
if (\$number_part[0] >= 0) {
\$number_part[1] = floor(\$number_part[1]);
}
// If the integer part is negative, use 'ceil' to round up the fractional part
else {
\$number_part[1] = ceil(\$number_part[1]);
}

// Combine the modified integer and fractional parts and return the result
\$ceil_number = array(\$number_part[0], \$number_part[1]);
return implode(\$separator, \$ceil_number);
}

// Call the 'floorDec' function with examples and print the results
print_r(floorDec(1.155, 2, ".") . "\n");
print_r(floorDec(100.25781, 4, ".") . "\n");
print_r(floorDec(-2.9636, 3, ".") . "\n");
?>

Output:

1.15
100.2578
-2.964

Flowchart:

PHP Code Editor: