w3resource

PHP Array Exercises : Floor decimal numbers with precision


18. Floor Decimal with Precision

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:

Flowchart: Floor decimal numbers with precision

For more Practice: Solve these Related Problems:

  • Write a PHP function that floors a decimal number to a specified precision and returns the result as a string using a custom separator.
  • Write a PHP script to implement a function that rounds down a number to a given number of decimal places without using round().
  • Write a PHP program to compare the output of your custom floor function with PHP's floor() and format the output with the specified separator.
  • Write a PHP function to handle negative decimal numbers and floor them to the desired precision, ensuring correct formatting.

Go to:


PREV : Lowest Non-zero Integer Function.
NEXT : Print Specific Elements from Multidimensional Array.

PHP Code Editor:



Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.