galleggiante Ho questo frammento di codice con uno strano risultato(279.1 vs 279.6 ... ...):Perl strano comportamento sulla estrazione del valore
$ perl -e "print unpack('f>', pack ('f>', 279.117156982422));"
279.617156982422
Mentre questo funziona
$ perl -e "print unpack('f>', pack ('f>', 279.117256982422));"
279.117248535156
E quelli così
$ perl -e "print unpack('f<', pack ('f<', 279.117156982422));"
279.11715698242
$ perl -e "print unpack('f', pack ('f', 279.117156982422));"
279.117156982422
Cosa c'è di sbagliato? È un bug nel disimballaggio dei valori in virgola mobile endian non nativi?
Nota Perl è la versione 5.14.2 sotto Cygwin su un PC.
I primi due casi vengono eseguiti con versioni diverse di Perl o sistemi operativi diversi? –
Qual è il risultato di 'pack' nel primo caso (intendo, quali sono i bytecode)? – raina77ow
Riproducibile qui con 5.14.2 (su Cygwin su Win7x64). Curioso. Potresti aver trovato un bug. Si noti che 'print unpack ('H8', pack ('f>', 279.117156982422))' per ottenere i bit restituisce '438b8eff', che è il modello di bit corretto secondo [questo sito] (http: // babbage. cs.qc.cuny.edu/IEEE-754.old/Decimal.html) –