如果这些是零,PHP中是否有任何方法可以使用带有两个小数位的浮点值(不是字符串)?
示例:
$v = 1.50
使用(float)
或floatval($v)
会将号码返回为1.5
我知道我可以使用number_format()
获得任意精度,但这会返回一个字符串,一旦我将它转换为浮点数,我就会遇到同样的问题。
答案 0 :(得分:2)
简短的回答是你做不到的。变量(作为float
)仅包含基准,1.5
或1.50
只是同一个东西,在内部它存储为floating point number。
只有当1.5
或1.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