Új hozzászólás Aktív témák

  • Megoldás:
    fájlba kiíratás elé betettem egy

    output.precision(10);

    parancsot. Ha a MATRIX static double, a nonzer_val pedig double, akkor tökéletes minden.

    Kíváncsiságból próbálgattam floattal is, de olyan dolgokat produkált, amit nem tudtam hova tenni... Bár ez már szigorúan véve nem a probléma része, mert a double megoldja (és nem kell a halálba optimalizálnom), de miért csinálja azt, hogy float esetén kiegészíti a számot még random, kisebb helyi értékű számjegyekkel, hogy meglegyen a 10 számjegy? Biztos hogy nem véletlenszerűen, mert kerekítés után az eredeti számot mindig visszaadja. És a forrás fájlban nincs több számjegy, nincs több információ, csak ami a fentebb linkeltben is látszik. Csak nézek és nem értem, hogy wtf? Valakinek valami tipp?

    Ilyen, ha jó:

    2 2 2686.361
    2 3 1943.819
    2 4 119.4358
    2 5 119.4358
    3 2 0.723588
    3 3 2685.947
    3 17 119.4358
    3 18 119.4358
    4 2 0.04446005

    És a float ilyet csinál belőle precision(10)-el:

    2 2 2686.361084
    2 3 1943.81897
    2 4 119.4357986
    2 5 119.4357986
    3 2 0.7235879898
    3 3 2685.947021
    3 17 119.4357986
    3 18 119.4357986
    4 2 0.04446005076

Új hozzászólás Aktív témák