什么是PHP命令,它执行类似于intval()但类似小数的操作?
EG。我有字符串“33.66”,我想在将其发送到MSSQL之前将其转换为十进制值。
感谢。
答案 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无论如何都是一样的。
您只是想确保格式正确,还是真正的浮动?