Newsgroup: it.comp.programmare
Titolo: troncamento decimali e cifre significative

Buonasera a tutti!
Sono alle prese con un programmino in java molto tosto da realizzare.
In sostanza devo troncare a due cifre decimali un qualunque numero
immesso PERO' stando attento alle cifre significative. Per esempio se
inserisco
345.6778
Il risultato dovrą essere 
345.68
Pensavo di gestirmela con un ciclo for che "scandaglia" il numero, ma
come faccio a sapere l'ultima cifra a destra? C'č un metodo che mi
restituisce la "lunghezza" di un numero?
Grazie in anticipo per ogni vostra dritta!
A presto.

 inserisco
E' sicuramente già compresa come funzione in una delle librerie di 
java... Qualche cosa tipo Round() o simile.
-- 
IBM: Indigestion Bothers Me
News 2000 [v 2.06] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

 Sono alle prese con un programmino in java molto tosto da realizzare.
veramente tosto! 

 
credo Math.round

 veramente tosto!
Ahahaha e vabbè dai, bisogna contare due fattori importanti:
1. sono alle prime armi
2. non posso usare la classe math e quindi nessun suo metodo.
Credo che il punto due sia il mio vero problema... 
O_o
Posso piangere?

 2. non posso usare la classe math e quindi nessun suo metodo.
Why? In ogni caso non vedo il problema... Vuoi due cifre decimali? 
Moltiplichi il tuo valore per 100, tieni solo la parte intera, poi 
dividi per 100. [DIABOLICO] L'arrotondamento te lo lascio come 
esrcizio di programmazione... [/DIABOLICO]
-- 
Programming is an art form that fights back.


 a presto :)
Puoi evitare di saperlo. Prima di fare le conversioni sommi al numero
0.004
-- 
IBM: Insidious Byzantine Mentality


 0.004
Forse intendevi dire 0.005, comunque, attenzione, che questa procedura,
cosi` pensata, e` consigliabile solo a scopo didattico (come credo che sia),
perche`, altrimenti, non e` affidabile - visto che si sta parlando di numeri
in virgola mobile...

 esrcizio di programmazione... [/DIABOLICO]
Grande, mi hai dato proprio un bel due di picche... beh scherzi a
parte, ero già riuscito a troncare come suggerito da te. Ho pensato di
usare un casting in mezzo alla procedura.
Il vero problema è proprio quello che tu mi vuoi lasciare come
esercizio! :-)
Io pensavo a questo: se il primo numero troncato è maggiore di 5
allora aumenta l'ultimo numero "vivo" di uno.
Altrimenti lascia così com'è.


 Forse intendevi dire 0.005, 
No. 0.004
Lui vuole che quelli SUPERIORI a 0,005 siano tramutati in 0,01
-- 
IBM: Insipidly Bankrolling Millions


 Lui vuole che quelli SUPERIORI a 0,005 siano tramutati in 0,01
Vabbe`, dai su non scherzare, e` evidente che intendeva dire MAGGIORE UGUALE
:-)
Anche perche` non avrebbe alcun senso altrimenti...
cosa fa, stravolge il significato di arrotondamento?!?

 cosa fa, stravolge il significato di arrotondamento?!?
Ma guarda, da quel che ricordo di matematica l'arrotondamento si fa 
proprio così.
-- 
System going down at 5 pm to install scheduler bug.


 proprio cosě.
O mamma :(

 O mamma :(
In effetti ricordavo al contrario! Da .1 a. 4 diventa 0 da .5 a .9 
diventa 1...
http://macosa.dima.unige.it/om/voci/approssi/approssi.htm
-- 
My BBS is baroque now.  Please call Bach later with your Handel.



Non mi sembra cosě grave...č solo una questione di convenzioni 

 Lui vuole che quelli SUPERIORI a 0,005 siano tramutati in 0,01
Zio: esatto, è a scopo didattico! Però mi interessa comunque capire
tutte queste piccole sfumature perchè vorrei saper programmare, in
futuro, in modo decente (vorrei passare anche al C++). :-)
Due di picche: esatto anche per te. 
Anzi mi hai dato un'idea... Tronco il numero a 3 cifre decimali. Se ha
l'ultima cifra maggiore di cinque lo tronco a due cifre decimali e ci
sommo 0.01, altrimenti tronco tranquillamente. Rimane sempre il
problema però di non avere una specie di "puntatore" che indichi quale
sia effettivamente il terzo numero dopo la virgola...

 sia effettivamente il terzo numero dopo la virgola...
Se fai come ti ho detto ti risparmi il problema.
-- 
What this country needs is a good five-cent microcomputer.


 Se fai come ti ho detto ti risparmi il problema.
Grazie a tutti, veramente!
Ho ricevuto parecchi spunti interessanti da voi e sono riuscito a
completare l'opera :-)