Gordion Skrevet 1. september 2008 Del Skrevet 1. september 2008 (endret) // Beregning av kvotient av to desimaltall import static javax.swing.JOptionPane.*; class oppgave3131 { public static void main(String[] args) { String tellerLest = showInputDialog("Tall i teller: "); String nevnerLest = showInputDialog("Tall i nevner: "); double teller = Double.parseDouble(tellerLest); double nevner = Double.parseDouble(nevnerLest); double svar = teller / nevner; showMessageDialog(null, "Kvotienten blir " + svar + " i utregningen"); } } Denne er med desimaltall. Men skal ha den til å regne ut i heltall, hvordan blir det egentlig? Har prøvd å endre double til int, men får bare en haug med feilmeldinger. Endret 1. september 2008 av Gordion Lenke til kommentar
NikkaYoichi Skrevet 1. september 2008 Del Skrevet 1. september 2008 Er det ikke bare å konvertere svaret til en integer da? Lenke til kommentar
Gordion Skrevet 1. september 2008 Forfatter Del Skrevet 1. september 2008 Du har vel ikke lyst til å legge ut hvordan du ville ha gjort det? Er "litt" nybegynner Lenke til kommentar
NikkaYoichi Skrevet 1. september 2008 Del Skrevet 1. september 2008 Det er vel ca 100 år siden jeg drev med java, men la meg tenke over saken litt. Lenke til kommentar
NikkaYoichi Skrevet 1. september 2008 Del Skrevet 1. september 2008 Det er vel ca 100 år siden jeg drev med java, men la meg tenke over saken litt. Red.: DecimalFormat form = new DecimalFormat("0"); double enDouble = 3456.5434256; System.out.println(form.format(enDouble)); Prøv den der. Lenke til kommentar
Ueland Skrevet 1. september 2008 Del Skrevet 1. september 2008 int resultat = (int)(60.00*20.**); Bør vel holde. Lenke til kommentar
Gordion Skrevet 1. september 2008 Forfatter Del Skrevet 1. september 2008 Takk, takk Mente det var såpass enkelt ja. Lenke til kommentar
NikkaYoichi Skrevet 1. september 2008 Del Skrevet 1. september 2008 Folk som kan java har oftere en lettere løsning en noen som ikke kan java. Lenke til kommentar
laroys Skrevet 1. september 2008 Del Skrevet 1. september 2008 int resultat = (int)(60.00*20.**); Bør vel holde. Den vil jo ikke runde av riktig, men det var kanskje ikke et krav.. Lenke til kommentar
Ueland Skrevet 2. september 2008 Del Skrevet 2. september 2008 Skal man bare skifte fra desimaler til heltall vil avrunding bli gjort korrekt, om derimot oppgaven spesifikt sier at avrunding ikke skal skje etter de normene som er satt blir det feil ja. Men ser ikke noe om det i forespørselen. Lenke til kommentar
pgdx Skrevet 2. september 2008 Del Skrevet 2. september 2008 Den vil alltid runde ned, hvis det var det noen tenkte på. (int)0.9 => 0 Lenke til kommentar
Gordion Skrevet 6. september 2008 Forfatter Del Skrevet 6. september 2008 Korrekt avrunding var ikke noe krav i oppgaven, men kjekt å se hvordan det kan gjøre. Skal tross alt lære Java skikkelig Lenke til kommentar
pgdx Skrevet 6. september 2008 Del Skrevet 6. september 2008 Den korrekte måten å gjøre det på, er å bruke Math.round. Det er to metoder, nemlig double->long og float->int. Siden du bruker double (du kunne like godt og kanskje heller brukt float), returnerer altså metoden en long. // Beregning av kvotient av to desimaltall import static javax.swing.JOptionPane.*; class oppgave3131 { public static void main(String[] args) { String tellerLest = showInputDialog("Tall i teller: "); String nevnerLest = showInputDialog("Tall i nevner: "); double teller = Double.parseDouble(tellerLest); double nevner = Double.parseDouble(nevnerLest); double svar = teller / nevner; showMessageDialog(null, "Kvotienten blir " + Math.round(svar) + " i utregningen"); } } Lenke til kommentar
Sukkess Skrevet 15. september 2008 Del Skrevet 15. september 2008 Har et ganske lignende spm, så jeg låner tråden litt. Hva gjør man hvis man vil runde av til nærmeste halve? Lenke til kommentar
pgdx Skrevet 15. september 2008 Del Skrevet 15. september 2008 Ganger med fem, runder ned og deler på fem? Lenke til kommentar
Sukkess Skrevet 16. september 2008 Del Skrevet 16. september 2008 Nei, det runder av til nærmeste tidel, men jeg vil runde av til nærmeste halve. andelFelt= ((solgteFelt / antallFeltTotalt) * 100) Hvordan få andel felt i nærmeste halve? Lenke til kommentar
pgdx Skrevet 16. september 2008 Del Skrevet 16. september 2008 Gang med to, rund, del på to? public class Fem { private static float roundHalf(float f) { return Math.round(f*2)/2f; } public static void main(String[] args) { for (float i = 0; i < 2; i+= 0.1) { System.out.println(i + " = " + roundHalf(i)); } } } Lenke til kommentar
Sukkess Skrevet 16. september 2008 Del Skrevet 16. september 2008 Se der ja! Trodde det var en type Math.roundish kommando for å runde av til nærmeste halve. Takk for hjelpa Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå