PHP:小数的intval()?

时间:2010-07-26 23:07:38

标签: php

什么是PHP命令,它执行类似于intval()但类似小数的操作?

EG。我有字符串“33.66”,我想在将其发送到MSSQL之前将其转换为十进制值。

感谢。

4 个答案:

答案 0 :(得分:13)

floatval()怎么样?

$f = floatval("33.66");

通过使用强制转换而不是函数调用,可以减少类型转换的几纳秒。但这是微优化领域,所以除非你每秒进行数百万次这样的操作,否则不要担心。

$f = (float) "33.66";

我还建议学习如何使用sscanf(),因为有时它是最方便的解决方案。

list($f) = sscanf("33.66", "%f");

答案 1 :(得分:3)

如果你的意思是浮动:

$var = floatval("33.66")

或者

$var = (float)"33.66";

如果您需要精确的小数精度,PHP中没有这样的类型。有Arbitrary Precision Mathematics扩展名,但它会返回字符串,因此在执行计算时它只对您有用。

答案 2 :(得分:0)

您可以尝试floatval,但浮动可能会有损。

您可以尝试通过sprintf运行该号码,以使其格式更正确。格式字符串%.2f将生成一个带有两个小数位的浮点格式数字。过剩的地方变得圆润。

我不确定sprintf是否会在内部将值转换为浮点数以进行格式化,因此有损问题可能仍然存在。话虽这么说,如果你只担心两位小数,你不应该需要担心精度损失。

答案 3 :(得分:-1)

php是一种松散类型的语言。如果你有

并不重要

$ x = 33.66;

$ x =“33.66”;

将它发送到mssql无论如何都是一样的。

您只是想确保格式正确,还是真正的浮动?