Récuperer la valeur flotante d'un float ? [JAVA] - Java - Programmation
Marsh Posté le 21-08-2004 à 19:40:32
Taz a écrit : tiens y a pas d'équivalent de modf ? |
Ben j'aimerais bien le savoir justement
Marsh Posté le 22-08-2004 à 01:33:09
ReplyMarsh Posté le 22-08-2004 à 01:35:05
Lightness1024 a écrit : koi t pas content de ta soustraction ? |
c'est imprécis, et quand bien même ça le serait, et si ton double ne tiens pas dans un int ?
edit : apparement, la seule manière c'est d'utilisé floor et ensuite de soustraire
Marsh Posté le 22-08-2004 à 01:39:35
ReplyMarsh Posté le 22-08-2004 à 11:56:01
Bon j'ai une solution bien plus pratique, c'est pour faire une Calculettre uro, donc 2 chiffres apres la virgulle, ça me suffit largement (j'aurais pu y penser avant)
Code :
|
Marsh Posté le 22-08-2004 à 12:16:49
c'est idiot, tu fait des conversion en int à tout va qui ne serve à rien (retour au double ensuite) ... bref tu perds de la précision inutilement ...
Marsh Posté le 22-08-2004 à 12:30:39
Taz a écrit : c'est idiot, tu fait des conversion en int à tout va qui ne serve à rien (retour au double ensuite) ... bref tu perds de la précision inutilement ... |
Bon je casterais en long si tu veux
Marsh Posté le 22-08-2004 à 12:40:54
ahahah utilise .floor et fait une soustraction
ça n'a rien de marrant, c'est grave cette manie du 'je caste je maîtrise' alors que ton petit exemple montre que tu n'a rien compris au mécanisme de promotion
Marsh Posté le 22-08-2004 à 12:46:22
Taz a écrit : ahahah utilise .floor et fait une soustraction |
J'ai démarré java hier, un peut d'indulgence SVP
Et 11 chiffres apres la virgulle avec mon int, je trouves ça quand meme pas mal, mais bon, 2 ça me suffit
Marsh Posté le 22-08-2004 à 12:47:35
là n'est pas la question. t'as qu'aà utiliser des int et c'est tout dans ce cas là ... sinon tu va avoir des suprises
Marsh Posté le 22-08-2004 à 13:25:18
Taz a écrit : là n'est pas la question. t'as qu'aà utiliser des int et c'est tout dans ce cas là ... sinon tu va avoir des suprises |
Des surprises en quoi ? ça ne fonctionne pas ça ? :
nbfloat= (int)((this.nombre-nbint)*100);
Marsh Posté le 22-08-2004 à 13:27:53
nbfloat = nombre-floor(nombre); ??
Marsh Posté le 22-08-2004 à 13:52:02
KangOl a écrit : nbfloat = nombre-floor(nombre); ?? |
plutot ça je penses qu'il veut dire, mais je ne comprend pas trop ça pensé.
Math.round (((nombre-Math.floor(nombre))*100));
Marsh Posté le 22-08-2004 à 14:17:08
un peu de lecture sur les problèmes de précision avec les float & doubles : http://forum.hardware.fr/hardwaref [...] 0339-1.htm
Marsh Posté le 22-08-2004 à 15:10:09
benou a écrit : un peu de lecture sur les problèmes de précision avec les float & doubles : http://forum.hardware.fr/hardwaref [...] 0339-1.htm |
Bien ce topic sur les float, faudra que je fasse gaffe quand je vais faire les * et les / de ma calculette mais pour l'instant, il arrive a faire une multiplication par 100 sans se planter
Marsh Posté le 21-08-2004 à 19:36:27
Bon, c'est tout bete, mais j'aimerais savoir si il existe une methode simple, car j'ai bien pondu un algo, mais il est trop laid
donc, par exemple, j'ai 58,263 et je veux juste le 263.
---------------
CPU-Z | Timespy | Mes bd