一个基础问题,关于类型转换

xing19900712 2012-11-05 01:11:34
做了个实验:
$foo="123.45";//string "123.45"
echo (int)$foo;//123
echo PHP_EOL;
echo intval($foo);//123
echo PHP_EOL;
$bar=1+"123.45e2";//12346
$bar1=1+(int)("123.45");//124
$bar2=1+intval("123.45");//124
echo $bar;
echo PHP_EOL;
echo $bar1;
echo PHP_EOL;
echo $bar2;
echo PHP_EOL;

还做了几个其他实验,发现:无论用(int)或者intval,对字符串来说都是截取到第一个非数字(第一个负号除外),包括小数点和“e”。例如”123.45“截取成123
但是用加号(“+“)就会将字符串正确的转换成数字。例如“123.45”转换成123.45

不知道结论是否正确。

另外是否有其他办法将字符串正确转换成数字?

觉得这种不连贯性很不好。

望大神们解答下,谢谢!
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing19900712 2012-11-05
  • 打赏
  • 举报
回复
不用了。我知道怎么回事了。 用加号的时候,会首先把字符串转换成float而不是int。 脑袋反应太慢。这都没想到。。 结贴了,虽然没人回答。。。
xing19900712 2012-11-05
  • 打赏
  • 举报
回复
这个。。。没人吗?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧