• Catania / Scienze MM. FF. NN. / Informatica
  • EuroConvertitore...help!!!

seven-votailprof
seven-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
Ciao, a tutti!

C´è qualcuno che ha provato a programmare l´Euro Convertitore?

Io mi sono bloccata all´arrotondamento della terza cifra dopo la virgola...come faccio a indicare la terza cifra dopo la virgola?

Con un array?ma come?

Trasformando il double in string?

Per favore se qualcuno dovesse trovare la soluzione, mandatemi un´e-mail o rispondetemi qui!!!!

mail_placeholder
beltipo-votailprof
beltipo-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
ma dici exnovo o parli di qualcosa che esiste già?
cyberboy-votailprof
cyberboy-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
E´ un´idea un po buttata li, cmq se ti può servire:



double valore = 125.4569



double decimale = valore - (int)valore; // e decimale vale 0.4569



double num = decimali * 1000 // num vale 456.9



int intero = (int)num // vale 456



converti in stringa e ritorni l´ultimo carattere...





cmq cerca, ci dovrebbe essere qualche funzione che ti potrà aiutare.



ciao
brawnsr-votailprof
brawnsr-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
bah... si potrebbe fare così:

---------------------------------------------------

import javax.swing.*;



public class euroPrint

{

public static void main(String[] args)

{

Double lire=Double.valueOf((JOptionPane.showInputDialog("Cifra in lire da convertire:";)));

double euro=lire.doubleValue()/1936.27;

System.out.println(dueDecimali(euro));

System.exit(0);

}

/* metodo che restituisce una stringa proveniente da un double "troncandolo" a sole due cifre decimali*/

public static String dueDecimali(double cifra)

{

String nuovaCifraTemp=Double.toString(cifra);

String nuovaCifra="";

int indiceDecimale=0;

for (int i=0;nuovaCifraTemp.charAt(i)!=´.´;i++)

{

nuovaCifra+=nuovaCifraTemp.charAt(i);

indiceDecimale=i;

}

nuovaCifra+=nuovaCifraTemp.charAt(indiceDecimale+1);

nuovaCifra+=nuovaCifraTemp.charAt(indiceDecimale+2);

nuovaCifra+=nuovaCifraTemp.charAt(indiceDecimale+3);

return nuovaCifra;

}

}
cyberboy-votailprof
cyberboy-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
Umh... per salvare solo le ultime 2 cifre decimali si potrebbe fare cosi:



double lire = 1578.569413



int n = (int) (lire * 10); // E tolgo le cifre che non servono



double = n / 10; // ripristino le 2 cifre decimali.



Ciao
brawnsr-votailprof
brawnsr-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
Si... ma così ti serve sapere prima quante cifre decimali ci sono... altrimenti non funziona...
cyberboy-votailprof
cyberboy-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
Perchè? Se moltiplichi per 100 sposti la virgola di due posti... poi elidi la parte decimale (qualunque essa sia e dividi di nuovo per 100:



double metodo(double valore) {

return (int)(valore * 100) / 100;



}



prova a passare qualsiasi double



ciao
seven-votailprof
seven-votailprof - Ominide - 0 Punti
Rispondi Cita Salva
Ragazzi, grazie mille a tutti ma ho già trovato la soluzione (grazie anche al mio a mico Carmeluzzo!) e sembra anche abbastanza semplice e sbrigativa...come ho fatto a non pensarci prima!!!??? Cmq se volete visionarla contact me!!!

Come guadagno Punti nel Forum? Leggi la guida completa
In evidenza
Classifica Mensile
Vincitori di novembre
Vincitori di novembre

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

mc2

mc2 Genius 208 Punti

Comm. Leader
Max

Max Geek 692 Punti

VIP
Registrati via email