我不完全知道您的情況出了什麼問題,但我想我可能會部分說明您的代碼正在發生什麼。我跑了以下快速黑客來測試一個理論:
void hexdump_double(double dbl)
{
assert(8 == sizeof(dbl));
printf("double: %02X %02X %02X %02X %02X %02X %02X %02X (%lg)\n",
((char *)&(dbl))[0],
((char *)&(dbl))[1],
((char *)&(dbl))[2],
((char *)&(dbl))[3],
((char *)&(dbl))[4],
((char *)&(dbl))[5],
((char *)&(dbl))[6],
((char *)&(dbl))[7],
dbl);
}
int main()
{
hexdump_double(6.1026988574311E-320);
}
這會產生一些令人振奮的輸出:
double: 40 30 00 00 00 00 00 00 (6.1027e-320)
正如你所看到的,這小浮點數ISN」 t任何隨機模式的位。但是,它也不會與「16」相關。
其中,Zend_Amf文檔指出ActionScript數字類型作爲PHP浮動返回,意思是class Number
由Adobe記錄:Adobe.com Flex documentation。這並不意味着任何「數字」將作爲雙重數字傳遞。
值小於2^29的int將作爲整數類型在AMF中返回傳輸,我假設Zend_Amf將以整數形式返回它。
如何從ActionScript中傳輸AMF對象?轉儲正在發送的字節是否可行?
您使用的是什麼版本的Zend Framework? – 2009-10-12 16:06:49
1.9。更新到最新沒有區別 – codecowboy 2009-10-12 20:42:30