Autor Zpráva
peta
Profil *
Potrebuji vysledek prevest na retezec a zaokrouhlit na 50 haleru. Pridat dan

cislo=111;
Math.round(cislo*1.19*2)/2);
Mno, toto, kdyz dam vypsat jako retezec, tak to sice zaokrouhli, ale vypise:
111
111.5
a ja potrebuji tvar 111.50

Vim, ze treba v php je na formatovani sprint(), ale za boha nemuzu najit, jak se to dela v JS. Asi jsem slepy, koukal jsem na juhu priklady a podle nazvu nic.
peta
Profil *
Taklhe, umim to udelat jinym zpusobem, ale urcite je nejaka univerzalni funkce.

cislo=111;
x=Math.round(cislo*1.19*2)/2);
y=Math.floor(x);
z=y+(x!=y)?".50":".00";
Rob
Profil
A co zkusit např.
var cislo=154,5; //nebudu psát to tvoje
cislo+="0";

vtip je v tom, že když to dáš do uvozovek, tak ti to tu hodnotu nepřičte, ale připíše.
peta
Profil *
Rob
nepochopil jsi problem.
mam normalni cenu a podle ceskych penez se zaokrouhluje na 50 satniky.

Cili vyjde mi cislo:
5 a jine cislo
6.4 a jeste cislo
3.7
radek: x=Math.round(cislo*1.19*2)/2); ... zaokrouhlim
a dostanu
5
6.5
4
a potrebuji
5.00
6.50
4.00

Hm?
Rob
Profil
Ok, Script s tím pracovat nebude umět, ale to nevadí, ty jen potřebuješ, aby do tak vylezlo. Tedy jestli to správně chápu tak script s tím něco dělá a výsledek ti leze ven. A ty potřebuješ aby byl ten výsledek ve formátu 3.50. Takže asi tak
function pocitani()
{
zde java script počítá
kontrola(vysledek);
}
function kontrola(vysledek)
{
zde se musí zjistit jak výsledek vypadá, teď nevím jak, ale určitě si poradíš
if (je vysledek 3,5)
opravene+="0"; připíše k 3,5 nulu aby to vypadalo 3,50
a ted to hlavni
window.alert("Vysledek je "+opravene);
}
Pokud jsem to správně pochopil, tak jednoduše řečeno:
Není důležité jak s tím Script počítá, ale jak to leze, takže pokud všechny výstupy ochráníš kontrolou a dopsáním toho hodnota+="0" tak to poslouží jak má. Jestli si pořád nerozumíme tak dej vědět.
peta
Profil *
Rob
Ale toz :) Ja potrebuji formatovani vysledku.
V PHP je to funkce sprint, jaka je to funkce v JS?

Umim to napsat jinym zpusobem a to:
a=Math.round(cislo*1.19*2)/2;
b=Math.floor(a);
c=(a>b)?".50":".00";
z=b+c;

kde
"a" je vstupni cislo, nasobene dani 1.19, zaokrouhleno na padosky round(x*2) /2
"b" je "a" bez desetinne carky
"c" do c dam tak bud ".00" nebo ".50", podle toho, jestli je a==b nebo ne
"z" je vysledek b+c

mno a v php by se 3 posledni radky napsali asi nejak takto:
sprintf($a%d2) nebo $a.string... (presne zneni neznam, ale vim, kde bych hledal priklady)
Na JS prave nic moc takove neni, jako dobra stranka s navodem a priklady.
Rob
Profil
peta
jestli ti to funguje tak není co řešit. Ale jen bych rád věděl jestli jsem se nemýlil. Potřebuješ ty padoše na výstupu ze scriptu??
peta
Profil *
Rob
Nechapu... jak na vystupu ze scriptu?
Ja to potrebuji jako prevodni funkci, abych tak mohl upravit vsechna cisla.
www.volny.cz/peter.mlich/www.htm
Ostatni - priklad na Cookies Nakupni kosik
(kde to mam teda jen pro vysledne ceny, ale bylo by hezke, kdyby tak byla vsechna cisla, cili function bbb(cislo), treba)
Rob
Profil
peta
Jak výstup ze scriptu?:

Návštěvníku vložte dvě čísla, která chcete (cokoliv).
Zadá a to přečte script a počítá.
Třeba chce návštěvník sečíst dvě čísla, např 2+2.
Script s nimi může dělat cokoliv. Odmocnit je, potom na něco mocnit z toho vypočítat na logaritmus nějakým dělením je převést na radiány a z radiánů na stupně. Prostě cokoliv, ale výsledek to musí vyhodit 4. Tak je jedno jestli je rovnou sečte, nebo s nima napřed cokoliv udělá, ale musí vyhodit jejich součet. Tím myslím výstup ze scriptu.
peta
Profil *
Rob aha, pan ma rad technicke pojmy jako vstup vystup, nestaci mu vseobecny pojem script, tak jo, no :) Kazdy script ma vstup vystup, nezdrzuji se popisovanim zrejmych veci
Leo
Profil
JavaScript 1.5 (JScript 5.5, coz odpovida IE 5.5) ma metody

Number.toFixed()

a

Number.toLocaleString()

ale nezkousel jsem to, Leo
fundix
Profil *
pridal bych jen trochu legislativy
http://www.aktis.cz/html/produkty/legislativa/zaokrouhlovani.html?relo ad_coolmenus
Toto téma je uzamčeno. Odpověď nelze zaslat.

0