Question

Possible Duplicate:
PHP: show a number to 2 decimal places

How do I cast an integer, let's say $i=50 to a float with two decimal values: $m=50.00? I have tried (float)$i but nothing happens.

EDIT:

I need to make $i == $m so that returns TRUE;

Was it helpful?

Solution

If you're just using the regular equality operator (==) instead of the type-safe equality operator (===) you shouldn't have any problems.

Comparing a double to an int with the same values:

$i = 20;
$m = 20.00;

gettype($i); // integer
gettype($m); // double

$i == $m; // true;
$i === $m; // false, $m is a double and $i is an integer.

If we would like to fix that, however, we just need to do:

$i = (double)$i;
gettype($i); // double
$i === $m; // true!

OTHER TIPS

round((float)$i, 2) Should do the trick.

The round function is built in and rounds a given float to the number of decimal places specified in the given argument.

Ahh yes, number_format($var, 2) is good as well !

For floating point numbers the number of decimal digits is a formatting property, that is the number itself doesn't know about those things. A float 50 is stored as an exact integer 50. You need to format the number (using sprintf for example) to be written with decimal digits.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top