php - 带两位小数的浮点值

时间:2016-03-23 15:01:21

标签: php types floating-point

如果这些是零,PHP中是否有任何方法可以使用带有两个小数位的浮点值(不是字符串)?

示例:

$v = 1.50

使用(float)floatval($v)会将号码返回为1.5

我知道我可以使用number_format()获得任意精度,但这会返回一个字符串,一旦我将它转换为浮点数,我就会遇到同样的问题。

3 个答案:

答案 0 :(得分:2)

简短的回答是你做不到的。变量(作为float)仅包含基准,1.51.50只是同一个东西,在内部它存储为floating point number

只有当1.51.50明确地(使用number_format())或隐式地(直接打印变量或检查值)时,您才可以看到打印为number_format()或{{1}}的值调试器)。如果要将值写为字符串,则应该使用{{1}}。

答案 1 :(得分:0)

这可能会对您有所帮助:

示例:

$foo = "105";

echo number_format((float)$foo, 2, '.', '');  // Outputs -> 105.00

答案 2 :(得分:0)

这是另一种方式:

$num = 1.2;
$dec = 2;
echo sprintf('%0.'.$dec.'f', round($num, $dec)); 

响应:

1.20