Špatný výpis čísla – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Špatný výpis čísla – PHP – Fórum – Programujte.comŠpatný výpis čísla – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Ondra
~ Anonymní uživatel
236 příspěvků
23. 2. 2008   #1
-
0
-

V kódu uvedeném níže jsem se pokoušel vypsat čísla. Vše funguje ale při výpisu se $totalamount poprvé (bez DPH) zobrazí korektně, ale podruhé se číslo zobrazí korektně jen při číslech nižších než 1000. Při vyšších číslech se zobrazí číslo podobné tomuto 4.21 a ne správně (v tomto př. asi 4 210.00). Nevím čím to je a neumím to na webu najít (nevím co zadat do googlu).
První zobrazení (korektní, bez DPH) je podtrženo a chybový výpis je podtržen a kurzívou.



<?php
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$adress = $_POST['adress'];

define ('TIREPRICE', 100);
define ('OILPRICE', 10);
define ('SPARKPRICE', 4);

$totalqty = $tireqty + $oilqty + $sparkqty;

if ($totalqty == 0)
{echo ('Na předchozí stránce jste nic nezadali!</body></html>');
exit;}

echo ('<p />Order processed at ');
echo (date("H:i, jS F Y"));
echo ('');
echo ('Your order is as follows:');
echo ('');
echo ($tireqty . ' tires');

if ($tireqty < 10)
{$discount = 0; echo ('');}
elseif ($tireqty >= 10 && $tireqty <= 49)
{$discount = 5; echo (' Máte slevu ' . $discount . "%\n");}
elseif ($tireqty >= 50 && $tireqty <= 99 )
{$discount = 10; echo (' Máte slevu ' . $discount . "%\n");}
elseif ($tireqty > 100)
{$discount = 15; echo (' Máte slevu ' . $discount . "%\n");}

echo ($oilqty . ' bottles of oil');
echo ($sparkqty . ' spark plugs');

$totalamount = $tireqty * TIREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
$totalamount = number_format ($totalamount, 2);
echo ("\n");
echo (' Items ordered: ' . $totalqty . "\n");
echo ('Subtotal: ' . $totalamount . "CZK\n");

$taxrate = 0.09; //DPH 9%
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format ($totalamount, 2);
echo ('Total including tax: ' . $totalamount . "CZK\n");
.
.
.
?>

Nahlásit jako SPAM
IP: 83.240.1.–
Reklama
Reklama
OndreJ
~ Moderátor
0
Stálý člen
23. 2. 2008   #2
-
0
-

A robí ti to preto, že funkcia number_format() mení číslo na reťazec . Napr.: ak zadáš sumu 1500 tak funkcia to v tvojom prípade prekonvertuje na string '1,500.00'. Keď vložíš takto naformátovaný reťazec ešte raz do tejto funkcie, tak to bere ako číslo 1.0

Jednoducho to vyrieš tak, že funkciu number_format() používaj iba na konci pri výstupe.

Nahlásit jako SPAM
IP: 213.151.246.–
Ondra
~ Anonymní uživatel
236 příspěvků
25. 2. 2008   #3
-
0
-

Děkuji, již vše funguje. :smile8:

Nahlásit jako SPAM
IP: 83.240.45.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Matice - špatný výpis — založil zacatecnik

Rutina na výpis čísla — založil Sefiros

Špatný program? — založil Avidius

Špatný výsledek — založil Bryant

Špatný den? — založil Garret Raziel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý