21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
johnl
Profil
Mám výpočet několika procent z určité částky
//mělo by se spočítat 5.5 procenta z 3000000000
$castka = 3000000000*1.055;
//mělo by se spočítat 7 procent z 3000000000
$castka = 3000000000*1.07;

Teď k problému - při prvním výpočtu mi skoro vždy vyjde normální číslo ovšem u toho druhého (a spousty ostatních) jako výsledek skoro vždy vyjde 3.21E+9 apod. Píšu skoro protože někdy se mi stane že mi vyjde normální číslo.. Info o php a pod. je tady (pokud to pomůže).. Nevítě někdo čím je tato chyba způsobena (na localhostu mi to jde normálně - blbne to jen na serveru)?

Moderátor Chamurappi: Problémi?!
Alphard
Profil
3.21E+9 je exponenciální vyjádření, není to chyba. Formátujte to podle potřeby (number_format().
Jestli chcete spočítat 7 procent, musíte násobit 0.07, vaše ukázka počítá 107 %.
johnl
Profil
Alphard:
Jestli chcete spočítat 7 procent, musíte násobit 0.07, vaše ukázka počítá 107 %.
Ano, je myslím jedno jestli spočítám 107 procent nebo spočítám sedm procent a pak je přičtu zase k celku :D (já jsem jen blbě napsal co chci spočítat - já potřebuju těch 3000000000 a spočítat z toho 7 procent a přičíst to k tomu (takže to můžu dám jako 1.07))

Otázka tedy zní, jak to můžu udělat tak aby mi vyšlo normální číslo? Jde to vůbec? Protože když se mi na stránku vypíše 3.21E+9 místo výsledku nevypadá to hezky :D
johnl
Profil
Alphard:
Omlouvám se všiml jsem si toho až teď.. Použij jsem na to tu funkci number_format() a už to jde (aspoň si myslím že jde) ok :D
SwimX
Profil
johnl:
šlo to i předtím, 3.21E+9 je to samé jako 3.21 * 10^9 neboli 3.21 * 1000000000 čili 3 210 000 000 :) ať žije matematika
johnl
Profil
SwimX:
Já vím právě pomocí toho number_format() jsem z toho 3.21E+9 udělal zase hezké číslo..

3.21 * 10^9 neboli 3.21 * 1000000000 čili 3 210 000 000 :)
jj, ale přiznejme si že málo který návštěvník webu když se mu vypíše místo čísla 3.21E+9 tak se mu to bude chtít přepočítávat :D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0