Skip to Content
PHP Cookbook
book

PHP Cookbook

by David Sklar, Adam Trachtenberg
November 2002
Intermediate to advanced
640 pages
16h 33m
English
O'Reilly Media, Inc.
Content preview from PHP Cookbook

2.3. Rounding Floating-Point Numbers

Problem

You want to round a floating-point number, either to an integer value or to a set number of decimal places.

Solution

To round a number to the closest integer, use round( ) :

$number = round(2.4);   // $number = 2

To round up, use ceil( ):

$number = ceil(2.4);    // $number = 3

To round down, use floor( ):

$number = floor(2.4);   // $number = 2

Discussion

If a number falls exactly between two integers, its behavior is undefined:

$number = round(2.5);   // $number is 2 or 3!

Be careful! As we mention in Recipe 2.3, floating-point numbers don’t always work out to exact values because of how they’re stored internally by the computer. This can create situations in which the obvious answer isn’t. A value you expect to have a decimal part of “0.5” might instead be “.499999...9” (with a whole bunch of 9s) or “.500000...1” (with many 0s and a trailing 1). If you want to ensure that a number is rounded up as you might expect, add a small delta value to it before rounding:

$delta = 0.0000001;
$number = round(2.5 + $delta);   // $number = 3

To keep a set number of digits after the decimal point, round( ) accepts an optional precision argument. For example, if you are calculating the total price for the items in a user’s shopping cart:

$cart = 54.23;
$tax = $cart * .05;
$total = $cart + $tax;       // $total = 56.9415

$final = round($total, 2);   // $final = 56.94

See Also

Recipe 2.3 for information on comparing floating-point numbers; documentation on round( ) at http://www.php.net/round ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

PHP Cookbook

PHP Cookbook

Eric A. Mann
PHP Cookbook, 2nd Edition

PHP Cookbook, 2nd Edition

Adam Trachtenberg, David Sklar
PHP Cookbook, 3rd Edition

PHP Cookbook, 3rd Edition

David Sklar, Adam Trachtenberg
Programming PHP

Programming PHP

Rasmus Lerdorf, Kevin Tatroe

Publisher Resources

ISBN: 1565926811Supplemental ContentCatalog PageErrata