View Full Version : [JAVA] Problema su numeri e virgole
Io ho:
long start = System.currentTimeMillis();
e
long end = System.currentTimeMillis();
se faccio:
long time = end - start; mi dà il tempo in msec ma io li voglio in secondi allora faccio time/1000 ma mi approssima sempre 0.0 o 1.0 ma io vorrei almeno 3 cifre dopo la virgola... se per esempio il risultato della sottrazione fosse 983 dovrebbe stamparmi 0.983.... come faccio?
NapalM
theClimber
08-05-2005, 18:09
sia start che end sono dei long e non implementano aritmetica a virgola mobile.
Prova a fare dividere per 1000d, in questo modo forzi uncast a double di tutta l'espressione. Occhio al fatto che con i numeri a virgola mobile non hai un controllo esatto del numero di cifre decimali; causa arrotondamenti causati dalle approssimazione del formato potresti trovare stampati dei numeri strani come 4.6999999999 o simili.
per formattare i numeri a piacere prova a dare un occhio alla classe della JDK java.text.DecimalFormat
ciao
Grazie mille, non conoscevo l'utilizzao di quella "d" :)
Già che ci sono ti pongo un quesito: io dovrei fare la differenza fra 2 date, data/ora in questo momento e data/ora di inserimento news e dovrei avere in output quanto tempo fà è stata inserita la suddetta news.. come posso fare?
Penso di dovre trasformare tutto in millisec e poi fare la differenza e trasformarla in giorni ore min ecc... ma x la data "adesso" non ho problema con System.ecc... come faccio x la data di inserimento news a trasformarla in millisecondi (io ce l'ho 10-10-2005 18:15:06)?
NapalM
Grazie mille, non conoscevo l'utilizzao di quella "d" :)
come faccio x la data di inserimento news a trasformarla in millisecondi (io ce l'ho 10-10-2005 18:15:06)?
NapalM
long data = ((Date)new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("10-10-2005 18:15:06")).getTime();
long data = ((Date)new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("10-10-2005 18:15:06")).getTime();
urca, grazie mille... lo provo :)
NapalM
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.