Senin durumun yanlış gidiyor tamamen bilmiyorum, ama ben kısmen kodunuzu neler olduğunu aydınlatmak mümkün olabilir düşünüyorum. Bir teoriyi test etmek için aşağıdaki hızlı kesmek koştu:
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);
}
Hangi bazı heyecan verici bir çıktı üretir:
double: 40 30 00 00 00 00 00 00 (6.1027e-320)
Gördüğünüz gibi, o küçük kayan noktalı sayı bit rastgele bir model değildir. Ancak, aynı zamanda ilişkili olduğu görünmüyor "16".
Zend_Amf belgeleri ActionScript Numarası türü bir PHP float olarak döndürülür bildiren Nerede, ne demek olduğunu class Number
Adobe tarafından belgelenmiştir: Adobe.com Flex documentation. Bu herhangi bir "sayı" bir çift olarak kabul edileceği anlamına gelmez.
2 ^ 29 daha az değere sahip bir int döndürülen bir tamsayı türü olarak AMF'deki aktarılacak, ve ben Zend_Amf bir tamsayı olarak bu dönecektir varsayalım.
Nasıl ActionScript'ten AMF nesneyi iletiliyor? Bu bayt gönderilen dökümü için uygulanabilir mi?