PHP int + float。错误或默认行为?

时间:2012-03-29 04:44:44

标签: php casting floating-point int

如果小数部分为0,这是将FLOAT编号格式化为INT的功能。

$formatted = (int)$i + $i - (int)$i;

// $i = 15.12 , $formatted = 15.12
// $i = 15.00 , $formatted = 15

但它似乎是PHP中的一个错误。我没有在PHP手册中找到INT + FLOAT操作的类型转换。在其他语言中,如C ++ INT + FLOAT = FLOAT。

1 个答案:

答案 0 :(得分:1)

<?php

$i = 15.00;

$formatted = (int)$i + $i - (int)$i;

var_dump($formatted);


float(15)

它还是一个漂浮物。

00没有显示的原因是因为它正好是15。

如果您知道这个数字正好是15,并且您不知道它的来源,那么您就不能假设任何精确度。

例如,你会期望$ f =(float)15;显示15.00?不,当然不。同样的概念也适用,只是在你预期的15.00上下文中。

此外,您可能会发现number_format()或round()非常有用,除非这只是一个实验。