desimaaleja lisää

java-semiosaaja

terppa.

Vastaus on varmasti helppo mutta näin aloittelijana en ole saanut ohjelmaa toimimaan oikein ja siten en ole saanut oikeaa koodinpätkää aikaiseksi. Eli pitäisi jakaa kaksi lukua keskenään, missä tuloksessa pitäisi olla desimaalin jälkeen 16 numeroa, eli vaikkapa 8/15 = 0.5333333333333333

ongelma on siinä että ohjelma pyytää kaksi lukuparia annettavaksi ( jaettava / jakaja) eli esim. 66/3 ja 8/15.
Ohjelmani on muutenkin yksinkertainen,yhteen-, vähennys-, kerto-, jakolasku ja jakojäännös java-ohjelma. Ensimmäisen tehtävän se päästää läpi ( 66/3) mutta toisessa laskutehävässä (8/15) herjaa kuin mikä. Doublella se pitäisi mennä....mutta.....ei :(
Mikä avuksi?

5

1395

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • foobarfoo

      public static void main(String[] args){
      String format = "%1.16g";
      double result = 8.0/15.0;
      System.out.printf(format, result);
      }
      Lisää esimerkkejä löytyy täältä: http://www.java2s.com/Tutorial/Java/0120__Development/UsingJavasprintfMethod.htm
      Tuohon ongelmaan hieman vaikea sanoa mitään, koska et kerro virheilmoitusta. Mutta kokeillaan: 66/3 = 22 joka on kokonaisluku (int tai Integer-tyyppinen), 8/15 = 0,5333.. joka on taasen Double-tyyppinen. Joten seuraavat toimivat:
      int resultInt 8/15; //tulos on 0
      double resultDouble = 8.0/15.0; //tulos on 0,5333...
      eli jos käytät double-tyyppistä tulosta, täytyy jaettavan ja/tai jakajan olla double-tyyppinen.

      • java-semiosaaja

        pätkäni on seuraavanlainen

        import java.io.*;

        public class Lasku
        {

        public static void main(String[] args) {

        int luku1;
        int luku2;
        int summa;
        int erotus;
        int tulo;
        double osamaara;
        int jakojaannos;

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


        try {

        System.out.println("Syötä ensimmäinen kokonaisluku : ");
        luku1 = Integer.parseInt(in.readLine());

        System.out.println("Syötä toinen kokonaisluku : ");
        luku2 = Integer.parseInt(in.readLine());

        summa = luku1 luku2;
        System.out.println(" " luku1 " " luku2 " = " summa);
        erotus = luku1 - luku2;
        System.out.println(" " luku1 " - " luku2 " = " erotus);
        tulo = luku1 * luku2;
        System.out.println(" " luku1 " * " luku2 " = " tulo);
        osamaara = luku1 / luku2;
        System.out.println(" " luku1 " / " luku2 " = " osamaara);
        jakojaannos = luku1 % luku2;
        System.out.println("Jakojäännös : " jakojaannos);

        } catch(Exception e) {
        System.out.println("Antamasi syöte oli virheellinen...");
        }




        }
        }


        Eli mihin antamasi vinkki pitäisi sijoittaa :o


      • ...
        java-semiosaaja kirjoitti:

        pätkäni on seuraavanlainen

        import java.io.*;

        public class Lasku
        {

        public static void main(String[] args) {

        int luku1;
        int luku2;
        int summa;
        int erotus;
        int tulo;
        double osamaara;
        int jakojaannos;

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


        try {

        System.out.println("Syötä ensimmäinen kokonaisluku : ");
        luku1 = Integer.parseInt(in.readLine());

        System.out.println("Syötä toinen kokonaisluku : ");
        luku2 = Integer.parseInt(in.readLine());

        summa = luku1 luku2;
        System.out.println(" " luku1 " " luku2 " = " summa);
        erotus = luku1 - luku2;
        System.out.println(" " luku1 " - " luku2 " = " erotus);
        tulo = luku1 * luku2;
        System.out.println(" " luku1 " * " luku2 " = " tulo);
        osamaara = luku1 / luku2;
        System.out.println(" " luku1 " / " luku2 " = " osamaara);
        jakojaannos = luku1 % luku2;
        System.out.println("Jakojäännös : " jakojaannos);

        } catch(Exception e) {
        System.out.println("Antamasi syöte oli virheellinen...");
        }




        }
        }


        Eli mihin antamasi vinkki pitäisi sijoittaa :o

        println -> printf


      • foobarfoo
        java-semiosaaja kirjoitti:

        pätkäni on seuraavanlainen

        import java.io.*;

        public class Lasku
        {

        public static void main(String[] args) {

        int luku1;
        int luku2;
        int summa;
        int erotus;
        int tulo;
        double osamaara;
        int jakojaannos;

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


        try {

        System.out.println("Syötä ensimmäinen kokonaisluku : ");
        luku1 = Integer.parseInt(in.readLine());

        System.out.println("Syötä toinen kokonaisluku : ");
        luku2 = Integer.parseInt(in.readLine());

        summa = luku1 luku2;
        System.out.println(" " luku1 " " luku2 " = " summa);
        erotus = luku1 - luku2;
        System.out.println(" " luku1 " - " luku2 " = " erotus);
        tulo = luku1 * luku2;
        System.out.println(" " luku1 " * " luku2 " = " tulo);
        osamaara = luku1 / luku2;
        System.out.println(" " luku1 " / " luku2 " = " osamaara);
        jakojaannos = luku1 % luku2;
        System.out.println("Jakojäännös : " jakojaannos);

        } catch(Exception e) {
        System.out.println("Antamasi syöte oli virheellinen...");
        }




        }
        }


        Eli mihin antamasi vinkki pitäisi sijoittaa :o

        Osamäärä tulostus printf-metodilla:

        System.out.printf(" %d \\ %d = %1.16g\n", luku1, luku2, osamaara);

        Jos muuten haluat, että tuo osamäärä tulostaa sen 0,5333.. niin laske osamäärä näin:
        osamaara = (double)luku1 / (double)luku2;

        Kotitehtäväksi jää selvittää, että mitä tuo tekee:)


      • java-semiosaaja
        foobarfoo kirjoitti:

        Osamäärä tulostus printf-metodilla:

        System.out.printf(" %d \\ %d = %1.16g\n", luku1, luku2, osamaara);

        Jos muuten haluat, että tuo osamäärä tulostaa sen 0,5333.. niin laske osamäärä näin:
        osamaara = (double)luku1 / (double)luku2;

        Kotitehtäväksi jää selvittää, että mitä tuo tekee:)

        kiitos ohjeistuksesta, sain ohjelman toimimaan!! iso kiitos! ::)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      33
      7084
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      38
      6514
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      29
      3564
    4. Ei tämä etene ikinä

      Kun kumpikaan ei enää ota yhteyttä. Mä en ainakaan uskalla.
      Ikävä
      45
      3110
    5. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2764
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      16
      2522
    7. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      2198
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      16
      2086
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      48
      1967
    10. Koko ajan olet

      Senkin suhteen kiusannut. Halut on ihan mielettömät olleet jo pitkään
      Ikävä
      34
      1820
    Aihe