Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Desimaalit pois

Antero [22.08.2014 18:07:26]

#

Moi,

yritin katsella tuolta foorumeilta ohjeita desimaalien poistoon, mutta en ihan vielä onnistunut. Voisiko joku terävämpi jeesaa taas?

eli haen tälläisellä komennolla sql:stä tietoa

<?php echo $rows['sum(NETTI)']; ?>

Saan tuloksena summan: 52.58000183105469

Voiko tuota rimpsua jatkaa niin että lukema olisi kivemman näköinen tyyliin 52.58?
Vai onko jotain muuta ratkaisua ongelmaan?

Antti Laaksonen [22.08.2014 18:15:04]

#

Ehkä helpoin tapa on käyttää PHP:n funktiota round:

<?php echo round($rows['sum(NETTI)'], 2); ?>

Parametri 2 tarkoittaa 2 desimaalin tarkkuutta.

Antero [22.08.2014 21:12:07]

#

No perhana. Hienosti toimii. Kiitos Antti!
Olin jo tuota round komentoa kokeillut mutta väärässä paikassa. ;)

Yucca [24.08.2014 14:25:52]

#

Antero kirjoitti:

Saan tuloksena summan: 52.58000183105469

Voiko tuota rimpsua jatkaa niin että lukema olisi kivemman näköinen tyyliin 52.58?
Vai onko jotain muuta ratkaisua ongelmaan?

Jos kyse on rahasummista, kuten kuudes ja puoles aistini kertoo, niin silloin oikea ratkaisu on käyttää kauttaaltaan kokonaislukuja, siis senttimääriä. Vain summia luettaessa ja tulostettaessa sitten käytetään desimaaliesitystä, mieluiten oikein lokalisoitua (suomenkielisellä sivulla käytetään desimaalipilkkua, ei -pistettä).

Grez [24.08.2014 16:20:15]

#

Mielestäni oikea ratkaisu ei välttämättä enää nykyaikana ole käyttää kokonaislukuja. Toki liukulukuja on rahan tapauksessa syytä välttää, mutta desimaaliluvut ovat mielestäni useimmiten se paras vaihtoehto.

Tosin tässä oli kyse PHP:stä, jossa ei taida desimaalilukuja olla. Ehkäpä siis tosiaan ratkaisu olisi käyttää niitä kokonaislukuja. Ei kuitenkaan vaikuta mielipiteeseeni.

jlaire [24.08.2014 16:46:10]

#

Senttimäärän tallentaminen kokonaislukuna on vielä liukulukujakin huonompi vaihtoehto. Se aiheuttaa taatusti enemmän pyöristysvirheitä.

Parempi ratkaisu on Grezin mainitsemat desimaaliluvut, mutta käytännöllisistä syistä kokonaisluvut esim. 0,000001 euron tarkkuudella käyvät myös.

Grez [24.08.2014 16:49:42]

#

jlaire kirjoitti:

aiheuttaa taatusti enemmän pyöristysvirheitä.

Riippunee operaatiosta. Jos tarvitaan vain yhteen- ja vähennyslaskuja, niin en näe miten kokonaisluvuilla olisi mahdollista saada pyöristysvirheitä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta