Autor | Zpráva | ||
---|---|---|---|
Jiřík Profil |
dobrý den,
Nevím si rady s takovou banalitou. Mohli byste mi prosím poradit jak na to? Hraje v tom roly "double"? if $a/$b = desetinné číslo echo "hláška1" else $a/$b = celé číslo echo "hláška2" Díky za odpovědi |
||
Mike8748 Profil |
#2 · Zasláno: 1. 1. 2009, 02:08:57
if (intval($a/$b)==($a/$b)) { echo "vysledek je cely cislo"; } else { echo "neni"; }
treba tak |
||
Jiřík Profil |
#3 · Zasláno: 1. 1. 2009, 10:04:11
Mike8748 hlásí mi to Warning: Division by zero in. tak jsem to trošku zkoumal a nějak tu nulu ne a ne ošetřit
|
||
Mastodont Profil |
#4 · Zasláno: 1. 1. 2009, 10:13:09
Nulu ošetři ještě předtím.
|
||
Měsíček Profil |
#5 · Zasláno: 1. 1. 2009, 10:23:26 · Upravil/a: Měsíček
Reaguji na Jiříka:
Pokud si vypůjčím základ od kolegy Mike8748 tak: <?php /** * Funkce vracející * [1] => je-li výsledek celé číslo * [0] => není-li výsledek celé číslo */ function isOutputInt ($number_1,$number_2) { if ($number_1 == 0 || $number_2 == 0) return 0; return ((intval($number_1/$number_2) == ($number_1/$number_2)) ? 1 : 0); } echo "Výsledek ".(isOutputInt(10,2) ? "je" : "není")." celé číslo"; // 5 [ je] echo "Výsledek ".(isOutputInt(10,3) ? "je" : "není")." celé číslo"; // 3.3 [není] ?> |
||
koudi Profil |
#6 · Zasláno: 1. 1. 2009, 16:23:04
A co funkce is_float(), nestačila by?
|
||
Majkl578 Profil |
#7 · Zasláno: 1. 1. 2009, 21:54:46
koudi
ne, deleni desetinnych cisel s vyslednym nedesetinnym ponecha typ float. Měsíček neni nahodou k vraceni ano/ne urcene true a false? uz jen z principu, ze je to prehlednejsi... |
||
Jiřík Profil |
#8 · Zasláno: 2. 1. 2009, 00:02:55
Lidi at to zkouším jak to zkouším, tak mi z toho leze všecko, jen ne to co potřebuju. Potřebuju výstup s formuláře přepočítat a vrátit výsledek. Problem je v tom že výsledek s desetinnýmm číslem musí mít nějaký komentář a celé číslo musí mít jiný komentář. Další problém je ten že php neovládám a všecko co se mi podaří je zásluhou měsíců studia. Můžu poprosit o řešení? Prostě to sám nezvládám. Děkuju
|
||
Alphard Profil |
#9 · Zasláno: 2. 1. 2009, 00:27:54
Jiřík
ukaž, co už máš jestli to není zcela špatně, je jednodušší to opravit, než napsat od začátku |
||
Měsíček Profil |
#10 · Zasláno: 2. 1. 2009, 09:23:21
Reaguji na Majkl578:
"neni nahodou k vraceni ano/ne urcene true a false? uz jen z principu, ze je to prehlednejsi..."ým Ano, svým způsobem i ano, ale stejně tak je k tomu určena i zástupná konstanta 0 a nebo !0 (1). Osobně mi příjde 0/1 lepší, protože šetří místo v kódu a vnitřně se dokáži rychleji zorientovat u 0/1 než u false/true. Reaguji na Jiříka: "Můžu poprosit o řešení? Prostě to sám nezvládám. Děkuju" V mém předchozím příspěvku máš řešení. Stačí si ho dát ke kontrole výstupů svého formuláře. Pokud opravdu ani tohle nedokážeš implantovat tak je to hodně špatné, ale dej sem potom alespoň odkaz a nebo celý kód na svůj formulář, PHP kód k tomu odpovídající ti zde už někdo napíše. |
||
bohyn Profil |
#11 · Zasláno: 2. 1. 2009, 10:00:35 · Upravil/a: bohyn
A co treba pouzit modulo?
if($a % $b) { // desetinne cislo } else { // cele cislo } Edit: $b musi byt cele cislo |
||
Jiřík Profil |
#12 · Zasláno: 2. 1. 2009, 13:01:02
Toto je zatím to co se nejvíc podobá tomu co chci dosáhnout. Samozřejmě jde výsledku dosáhnout i jinak a obsáhleji, ale je potřeba elegantnější řešení.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title> formulář na výpočet schodů</title> </head> <form action="schody.php"> Zadej přesnou výšku patra v milimetrech <input name="v">mm<br> <button type="submit" name="ok"> Spočítej schodiště </button> </form> <?php $v = ($_GET["v"]); $stp = "150"; echo "V případě, že bude výška jednoho schodišťového stupně".$stp." mm, pak bude počet schodišťových stupňů  ".$v/$stp; ?> <br> <?php echo 'pokud je výsledek jiný než celé číslo, pak se musí celková výška dělit jiným číslem'; /* Takže záměr je, aby se zobrazila hláška příslušná výsledku. Když bude výsledkem celé číslo, pak se zobrazí hláška "Toto je proveditelné". Když bude výsledkem desetinné číslo pak se musí zobrazit hláška "nelze vytvořit schodiště jehož součástí je jeden schod jiný než ostatní." */ ?> </body> </html> |
||
Jiřík Profil |
#13 · Zasláno: 2. 1. 2009, 13:07:32
To: Měsíček
tvůj postup jsem zkoušel nějak aplikovat, ale fakt nevím jak do výstupu z formuláře |
||
Měsíček Profil |
#14 · Zasláno: 2. 1. 2009, 19:34:38
Pochopil jsem to správně?
<form action="<?php echo $_SERVER["PHP_SELF"];?>"> Zadej přesnou výšku patra v milimetrech <input name="vyska"> mm<br> <button type="submit" name="ok"> Spočítej schodiště </button> </form> <?php /** * Definice funkce */ function isOutputInt ($number_1,$number_2) { if ($number_1 == 0 || $number_2 == 0) return 0; return ((intval($number_1/$number_2) == ($number_1/$number_2)) ? 1 : 0); } /** * Definice proměnné "STP" */ $stp = 150; /** * Kontrola a následné vypsání hlášek */ if (isset($_GET["ok"]) && !empty($_GET["vyska"])) { if (isOutputInt($_GET["vyska"], $stp)) { /** * Je to celé číslo */ echo "V případě, že bude výška jednoho schodišťového "; echo "stupně {$stp} mm, pak bude počet schodišťových "; echo "stupňů ".($_GET["vyska"]/$stp); echo " takže tohle <strong>je</strong> proveditelné."; } else { /** * Není to celé číslo */ echo "Pokud je výsledek jiný než celé číslo, pak se musí "; echo "celková výška dělit jiným číslem. Takže nelze vytvořit "; echo "schodiště jehož součástí je jeden schod jiný než ostatní."; } } ?> |
||
Jiřík Profil |
#15 · Zasláno: 2. 1. 2009, 19:43:35
Měsíčku pochopil jsi to naprosto perfektně.
Moc děkuju za pomoc za perfektní řešení. Dobrá práce |
||
Časová prodleva: 16 let
|
0