很难的float转换问题 var_dump((string)3518.27); //string(7) "3518.27" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var_dump((string)$MeterData);不对!socket_read返回的就是string 通过socket传来的4字节float怎样转成字符串?不对!socket_read返回的就是string————————————————————? tcp/ip协议传输数据一般是不按string方式进行的可php非得把socket_read搞成string.郁闷!在php搞什么字节、二进制真是寸步难行! 四个字节的float应该是按第1位 符号位(Sign) : 0代表正,1代表为负 第2-9位 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储 后面23位 尾数部分(Mantissa):尾数部分 如果是这样的数据传过来 估计只能自己处理这个四字节的字符串来转换了 没想出什么好办法 LZ用 function hex2str($hexstring){ $str = ''; for($i=0; $i<strlen($hexstring); $i++){ $str .= sprintf("%02X",ord(substr($hexstring,$i,1))); } return $str;}转换个四字节的数据 (最好也贴一下实际应该表示的数值) 可php非得把socket_read搞成string----------------------------------这与搞成string没有关系。php用的是variant变量。你这样直接传float的内存结构过来当然要写程序自己转换。 $MeterData = socket_read(socket,4);list($t) = unpack('f', $MeterData);echo $t;或$ar = unpack('ft', $MeterData);echo $ar['t']; 一个oracle问题,急 请教!表单提交失败后,如何返回原值。 php再次求助 如何把select的信息进行提交到数据库 怎么用?手册上看到的 求@是啥意思 有人用过mysql的存储过程吗? 菜鸟问题,静态变量的问题! 《晨晖学生分数查询系统》免费下载说明。 各位谈一下象网易通行证这样功能 新手请教,如何判断查询结果为空 帮忙解决下数组的问题!(菜鸟问..)
不对!socket_read返回的就是string
不对!socket_read返回的就是string
————————————————————
?
可php非得把socket_read搞成string.郁闷!
在php搞什么字节、二进制真是寸步难行!
第2-9位 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
后面23位 尾数部分(Mantissa):尾数部分
如果是这样的数据传过来 估计只能自己处理这个四字节的字符串来转换了 没想出什么好办法
function hex2str($hexstring)
{
$str = '';
for($i=0; $i<strlen($hexstring); $i++){
$str .= sprintf("%02X",ord(substr($hexstring,$i,1)));
}
return $str;
}转换个四字节的数据 (最好也贴一下实际应该表示的数值)
----------------------------------
这与搞成string没有关系。
php用的是variant变量。你这样直接传float的内存结构过来当然要写程序自己转换。
echo $t;
或
$ar = unpack('ft', $MeterData);
echo $ar['t'];