Bonjour,
Je lis un fichier texte ou je récupère des strings qui représentent des flottants (IEEE 32 bits- single format) en hexa. genre "3F800000".
Je voudrais les convertir en float normal...
Merci d'avance
Version imprimable
Bonjour,
Je lis un fichier texte ou je récupère des strings qui représentent des flottants (IEEE 32 bits- single format) en hexa. genre "3F800000".
Je voudrais les convertir en float normal...
Merci d'avance
Float.intBitsToFloat()
Salut,
Ouais, j'avais essayé ca. mais ca marche pas...
genre :
float fl= Float.intBitsToFloat(Byte.decode("3FF00000"));
System.out.println("float : "+fl);
J'obtient un NumberFormatException: For input string: "3FF00000"
Une idée..?
Mais si ca marche, mais il faut être plus attentif.
Byte, c'est un nombre sur 8 bits. Tu donnes un code hex sur 32, il faut utiliser un Integer.
La syntaxe a respecter pour le parametre de Integer.decode, c'est :
Donc le code, ca doit être plutotCitation:
Envoyé par javadoc
Code:
1
2
3 float fl= Float.intBitsToFloat(Integer.decode("0x3FF00000")); System.out.println("float : "+fl);
Autant pour moi!
Et tout mes remerciements!
j'ai coché résolu, mais je dois préciser, ca marche pas pour les négatifs... genre "B...."
Mais je vais me débrouiller. A moins que la solution ne te vienne immédiatement à l'esprit! ;)
Encore merci pour tes indications
if(maString.startsWith("B")){
maString = "3"+st.substring(1, 8);
monFloat= Float.intBitsToFloat(Integer.decode("0x"+st));
monFloat = -monFloat;
}
à l'arrache nickel