PHP ceil calculation differs in result from manually calculated result

64 Views Asked by At

I have this script:

function round_price_with_limits( $price = null, $multiplier = 9.3, $nearest = 10, $minus = 0.05, $map = 9.95, $msrp = 9999999999) {

    // Ensure a price was provided.
    if ( !empty( $price ) ) {

        // Calculate price with markup and round it.
        $rounded_price = ( ceil ( ( $price * $multiplier ) / $nearest ) * $nearest ) - $minus; 

        // If price is less than minimum, return minimum.
        if($rounded_price < $map){

            return $map;

        }
        // If price is greater than maximum, return maximum.
        elseif($rounded_price > $msrp){

            return $msrp;

        } else {

            // Return price otherwise.
            return $rounded_price;

        }

    }
}

It works on almost all products, except for one with $price value = 1,76. The end result when running the script becommes 9.95 When I calculate by hand, the result is 19.95 Can you spot why this is calculated differently via the php?

0

There are 0 best solutions below