• 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

Lascia un messaggio ai conduttori Vai alla pagina TV

In evidenza
Classifica Mensile
Vincitori di settembre
Vincitori di settembre

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

Registrati via email