Autor | Zpráva | ||
---|---|---|---|
wordik Profil * |
#1 · Zasláno: 28. 5. 2014, 21:46:54
Dobrý den,
potřebují zaokrouhlovat matematicky podle 3. čísla za desetinnou čárkou tímto způsobem: 8,18 * 1,21 (dph) ->9,90 (v kalkulačce 9,8978 ->zaokrouhlit nahoru) 13,31 * 1,21 (dph) ->16,11 (v kalkulačce 16,1051 ->zaokrouhlit nahoru) 14,02 * 1,21 (dph) ->16,96 (v kalkulačce 16,9642 ->zaokrouhlit dolu) mám na to funkci function setNumberRoundFormat($number) { return number_format(round($number, 3), 2, ',', ''); } ale funguje tak nějak prapodivně. 8,18 * 1,21 mi to zaokrouhlí na 9,89 (místo 9,90) a 13,31 na 16,10 (místo 16,11). |
||
Radek9 Profil |
#2 · Zasláno: 28. 5. 2014, 22:03:52
wordik:
Jako teoretickou chybku vidím to, že v round máš druhý parametr nastaven na 3. Nicméně přímo v number_format by mělo být stejné zaokrouhlení, takže to asi nemá vliv. Funkce mi funguje správně. |
||
Alphard Profil |
wordik:
„8,18 * 1,21 mi to zaokrouhlí na 9,89“ Mně správně na 9,90. echo setNumberRoundFormat(8.18*1.21); // 9,90 Ten round() je tam zbytečný, jak píše Radek, spíš to ještě může rozbít (ze 4 na 3. desetinném místě udělat 5 a zaokrouhlit blbě). |
||
wordik Profil * |
#4 · Zasláno: 29. 5. 2014, 10:56:28
Tak nevím jestli jsme se správně pochopili nebo jestli jsem se správně vyjádřil. Ale mě teda echo (8.18 * 1.21) zobrazí 9.8978 a nikoliv 9,90.
V jednoduchosti potřebuji takovou funkci: - zakrouhleno podle 3čísla za desetinnou čárkou - místo des.tečky des.čárka - vždy zobrazena 2 desetinná místa |
||
Radek9 Profil |
wordik:
„echo (8.18 * 1.21) zobrazí 9.8978 a nikoliv 9,90.“ Tys tam totiž vynechal tu funkci. Pro zadanou hodnotu to správně zaokrouhlí na 9,90. function setNumberRoundFormat($number) { return number_format($number, 2, ',', ''); // Funkce zaokrouhlí číslo na 2 desetinná místa (podle třetího) a zformátuje ho do stringu. } echo setNumberRoundFormat(8.18 * 1.21); // Zobrazí 9,90 |
||
Časová prodleva: 10 let
|
0