è possibile passare da un double(64 bit) a due int(32 bit ciascuno) senza perdita di informazione??
ho provato con questa operazione ma il risultato non è stato quello sperato..
INTERO_high = (int) ((int)a>>32);
INTERO_low = (int) ((int) a);
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
è possibile passare da un double(64 bit) a due int(32 bit ciascuno) senza perdita di informazione??
ho provato con questa operazione ma il risultato non è stato quello sperato..
INTERO_high = (int) ((int)a>>32);
INTERO_low = (int) ((int) a);
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
No, perché il cast a int tronca i decimali (nonché può far perdere la magnitudo del numero).Originariamente inviato da Leon@@rdo
ho provato con questa operazione ma il risultato non è stato quello sperato..
INTERO_high = (int) ((int)a>>32);
INTERO_low = (int) ((int) a);
Innanzitutto usa doubleToRawLongBits() di Double per ottenere un long che contiene i bits del double (senza perdita), quindi spezza il long.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet