lrosa
lrosa

Reputation: 200

PHP typecasting float->int

Given this PHP code:

// total is 71.24 (float)
$value = $total * 100;
var_dump($value);
$valuecast = (int)$value;
var_dump($valuecast);
settype($value, 'int');
var_dump($value);

var_dump($value) gives float(7124)

var_dump($valuecast) gives int(7123)

var_dump($value) after settype gives int(7123)

How can I get the correct type conversion?

Upvotes: 4

Views: 2765

Answers (2)

Gordon
Gordon

Reputation: 316969

From PHP Manual on TypeCasting Float to Integer

Warning

Never cast an unknown fraction to integer, as this can sometimes lead to unexpected results.

<?php
    echo (int) ( (0.1+0.7) * 10 ); // echoes 7!
?>

See also the warning about float precision.

Upvotes: 4

K Prime
K Prime

Reputation: 5849

For float to int, I'd suggest round. This is to cater to IEEE float imprecision.

Upvotes: 2

Related Questions