float

pyöristäminen

hei

Miten saan float-tyyppisen arvon määriteltyä siten,että se tulostuu 4 desimaalin tarkuudella ja pyöristetään oikein. Desimaalien tarkkuuden osaan, mut toi pyöristys.

4

1127

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • pyöriäinen

      Eikö toi pyöristä oikein (mulla ainakin):
      C:
      printf("%.4f\n", fluku);

      C :
      std::cout

    • c-burnout

      Tein pienen testin ja pyöristys ei tosiaan toiminut kunnolla (Visual Studio 6 kirjastot ja kääntäjä).

      printf("\n%f, %0.4f", (float)0.0000400, (float)0.0000400);
      printf("\n%f, %0.4f", (float)0.0000500, (float)0.0000500);
      printf("\n%f, %0.4f", (float)0.0000501, (float)0.0000501);
      printf("\n%f, %0.4f", (float)0.0000600, (float)0.0000600);

      Ja tulos oli:

      0.0000400, 0.0000
      0.0000500, 0.0000
      0.0000501, 0.0001
      0.0000600, 0.0001

      Elikkä tuo 0.0000500 ei pyöristynyt oikein ylöspäin. Outoa tosiaan?

      Toisaalta voit lisätä kaikkiin lukuihin tuon 0.000001 arvon jolloin pyöristys taas toimii.

      #define FIXFLOAT( x ) ((float)x 0.0000001)

      printf("%.4f", FIXFLOAT(0.00005));
      antaa nyt oikean vastauksen 0.0001

      • menee pieleen

        negatiiviset, huomasitko?


      • TRRY

        Pyöristys meni ihan oikein. Syy ongelmaasi on tässä:

        printf("\n%0.12f", (float)0.0000500);

        Eli annoit pyöristettäväksi luvun, joka on itse asiassa hieman pienempi kuin 0,00005. Floateilla ei pysty esittämään lukua 0,00005 eikä montaa muutakaan lukua tarkasti. Doublen käyttäminenkään ei ratkaise ongelmaa. Jos tarvitset tarkkoja tuloksia, laske kokonaisluvuilla.


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

    Luetuimmat keskustelut

    1. Ketkä haukkuu suomalaisten ÄO:tä?

      Siinä on kaksi vaihtoehtoa, joko siis rutiköyhä vajaaälyinen vasuri tai venäläinen. Kyllähän täällä käy suomenvenäläisi
      Maailman menoa
      145
      3679
    2. Henkirikos kiuruvedellä

      Poliisi tutkii maaliskuussa tapahtunutta 50 luvulla syntyneen kuolemaa henkirikoksena. Missä päin tälläinen sattunut
      Kiuruvesi
      107
      3502
    3. Diesel-ammattilainen kehuu Sanna Marinia

      "Sanna Marinin (sd) hallitus loi neljä vuotta sitten väliaikaisen polttoaine­tuki­järjestelmän, kun energianhinnat nousi
      Maailman menoa
      20
      2472
    4. Pitkänperjantain kunniaksi tekoälyn analyysi Riikka Purran kirjoituksesta

      🧠 Mitä se kertoo "riikka"-nimimerkin lähijunassa tapahtuneesta? 1. Asenteellinen ja epäasiallinen sävy: Kirjoitus purs
      Maailman menoa
      4
      2275
    5. 100 prosentin perintövero korjaisi myös Hitas-ongelman

      Moni ei uskalla kieltäytyä perinnöstä maineen menettämisen uhalla, joten sitten tulee näitä tilanteita, joissa joutuu es
      Maailman menoa
      28
      2113
    6. Olen aika varma

      että meidän tiemme risteäminen oli ainutkertainen tapahtuma elämässäni. En tule koskaan kohtaamaan ketään muuta, joka sa
      Ikävä
      33
      1163
    7. Läpäiseekö Martina Aitolehti Erikoisjoukot - kyllä vai ei?

      Martina Aitolehti on pärjännyt mainiosti Erikoisjoukoissa. Yrittäjä on mielipiteiltään napakka ja hän sivaltaakin koulut
      Kotimaiset julkkisjuorut
      17
      1031
    8. Mikä on miehekäs mies?

      Kertokaa naiset. >Simiti<
      Sinkut
      134
      823
    9. Ei ne päivät ole samanlaisia...

      Toisena hymyillään ja katsellaan silmiin, toisena taas tuntuu ettei edes tunneta toisiamme, vältellään ja katseet ei vah
      Työpaikkaromanssit
      28
      820
    10. Oikea syy siihen

      miksi toivon ettei enää törmätä on se, että olen ihan tavattoman ihastunut sinuun. Paljon helpompi itselle kun ei saa pä
      Ikävä
      34
      744
    Aihe