[Java] Question simple transformer un Double

Question simple transformer un Double [Java] - Java - Programmation

Marsh Posté le 05-10-2003 à 21:36:52    

Bonjour ma question est plutot simple mais je ne sais pas vraiment quel methode utiliser.
 
J'ai une classe d,objet et dans cet objet j'ai une duree stocke en double.  (ex : 10 min 30 seconde = 10.5)
 
Je cherche comment retransformer mon double en minute et seconde.
 
De plus, devrais-je faire cette transformation directement dans mon objet, ou plutot dans la classe qui appelle cette objet ?
 
Merci !

Reply

Marsh Posté le 05-10-2003 à 21:36:52   

Reply

Marsh Posté le 05-10-2003 à 21:48:00    

int min = (int) Math.floor(duree);
int sec = (int) ((duree - min) * 60)
 
ca dépend de ton objet ... mais comme ca, je dirais à l'extérieur ...


Message édité par benou le 05-10-2003 à 22:28:21

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 21:52:06    

:o

Reply

Marsh Posté le 05-10-2003 à 22:09:26    


quoi ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 22:10:46    


 
il fait un troll mono smilesque :o

Reply

Marsh Posté le 05-10-2003 à 22:14:19    

chrisbk a écrit :


il fait un troll mono smilesque :o


:lol:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 22:17:58    

benou a écrit :

int min = (min) Math.ceil(duree);
int sec = (int) ((duree - min) * 60)

Reply

Marsh Posté le 05-10-2003 à 22:19:11    

Avec cette méthode, ca ne fonctionne que si min et sec sont des double et le résultat ressemble a ceci :
 
6.0 -32.1988487702773
 
Ce que j'aurais besoin ces plutot 6 32.
 
Comment faire ? (je sais que c'est simple, mais pourtant je ne trouve pas)

Reply

Marsh Posté le 05-10-2003 à 22:20:08    

utilise son code tel quel, vu qu'il utilise des ints tes resultats sont assez improbables

Reply

Marsh Posté le 05-10-2003 à 22:20:49    

BelzME a écrit :

Avec cette méthode, ca ne fonctionne que si min et sec sont des double et le résultat ressemble a ceci :
 
6.0 -32.1988487702773
 
Ce que j'aurais besoin ces plutot 6 32.
 
Comment faire ? (je sais que c'est simple, mais pourtant je ne trouve pas)
 

:heink:

Reply

Marsh Posté le 05-10-2003 à 22:20:49   

Reply

Marsh Posté le 05-10-2003 à 22:20:57    


la prochaine fois t'y arrivera peut-être du premier coup ...


Message édité par benou le 05-10-2003 à 22:24:11

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 22:21:47    

benou a écrit :


le prochain coup t'y arrivera peut-être du premier coup ...

c'est moche tous ces cast :o
c'est mieux ?

Reply

Marsh Posté le 05-10-2003 à 22:22:15    

Ma duree est en double et si j'utilise son code tel quel ca ne compile pas.
 
"Type mismatch: cannot convert from double to int"

Reply

Marsh Posté le 05-10-2003 à 22:24:49    

Taz a écrit :

c'est mieux ?


quand tu fermes ta gueules, c'est mieux ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 22:26:31    

l'erreur spa normal. par contre spa ceil, c'est floor

Reply

Marsh Posté le 05-10-2003 à 22:27:31    

benou a écrit :


quand tu fermes ta gueules, c'est mieux ...

spa ma faute si tu te fais piéger sur une question d'algo à la con : 2 lignes, un faut de syntaxe, une erreur d'algo. tu fatigues

Reply

Marsh Posté le 05-10-2003 à 22:28:06    

Code :
  1. public class Test {
  2. public static void main(String[] args) {
  3.  double duree = 10.5;
  4.  int min = (int) Math.floor(duree);
  5.  int sec = (int) ((duree - min) * 60);
  6.  System.out.println("min : " + min + ", sec :" + sec);
  7. }
  8. }


ca compile et ca donne ca comme résultat :

Citation :

min : 10, sec :30


 
remarque : j'avais mit ceil à la place de floor ...


Message édité par benou le 05-10-2003 à 22:31:15

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-10-2003 à 22:29:52    

benou a écrit :

Code :
  1. public class Test {
  2. public static void main(String[] args) {
  3.  double duree = 10.5;
  4.  int min = (int) Math.ceil(duree);
  5.  int sec = (int) ((duree - min) * 60);
  6.  System.out.println("min : " + min + ", sec :" + sec);
  7. }
  8. }


ca compile et ca donne ca comme résultat :

Citation :

min : 10, sec :30




 
[benoit@athlon tmp]$ javac Test.java && java Test
min : 11, sec :-30
 
pour plus d'incompréhension

Reply

Marsh Posté le 05-10-2003 à 22:32:24    

Oki, ta raison, maintenant ca fonctionne, c'est juste que j'avais pas remplacer (min) par (int).
 
Merci bcp !

Reply

Marsh Posté le 05-10-2003 à 22:33:58    

n'oublie pas floor
 
parce que ceil(10.5) -> 11.0
 
 
edit : ma remarque était donc loin d'être inutile


Message édité par Taz le 05-10-2003 à 22:34:23
Reply

Marsh Posté le 05-10-2003 à 22:36:25    

BelzME a écrit :

Oki, ta raison, maintenant ca fonctionne, c'est juste que j'avais pas remplacer (min) par (int).


 
hé bé ... y en a qui reflechissent !!!

Reply

Marsh Posté le 05-10-2003 à 23:14:51    

:lol:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed