Autor | Zpráva | ||
---|---|---|---|
Xantippa Profil |
#1 · Zasláno: 21. 3. 2014, 18:10:43
Zdravím,
lze převádět desetinná čísla na zlomky? Aby místo 0,25 ukázal 1/4 (klasicky pomocí zlomkové čáry, nikoli pouze lomítka.) Předem děkuji za odpovědi! |
||
Tori Profil |
#2 · Zasláno: 21. 3. 2014, 18:22:17
Nějaké info jsou tu: Desetinné číslo na zlomek, zřejmě není ani tak problém samotný převod na zlomek, jako spíš použitelný způsob vykreslení.
|
||
Hitman Profil |
#3 · Zasláno: 21. 3. 2014, 18:47:55
Nejde tedy ani tak o převod jako vykreslení zlomkové čáry, což si myslím že možné není, pouze obrázkem s příslušným altem.
|
||
Chro Profil |
#4 · Zasláno: 21. 3. 2014, 18:59:18
Šlo by to třeba pomocí divu a v něm absolutně napozicovaných textů jako čísla a ___.
|
||
Alphard Profil |
#5 · Zasláno: 21. 3. 2014, 19:00:40
Záleží na účelu. Často se používají generátory obrázku z LaTeXu zadaného do adresy obrázku, např. Google API chart.apis.google.com/chart?cht=tx&chl=%5Cfrac%7B1%7D%7B4%7D vytvoří . Ten nehezký řetězec je jen escapované
\frac{1}{4} .
Pokud jde o převod samotný, je to triviální, násobením získat dvě celá čísla, eukleidovým algoritmem najít NSD a vydělit. |
||
Xantippa Profil |
Děkuji moc, nějak jsem to vyřešila. Jen bych ještě chtěla zjistit, jestli lze nějak jednoduše nastavit, aby se zlomek sám zkrátil, např. aby z 500/1000 udělal jednoduše 1/2.
Přikládám svůj zdrojový kód, (je to barbarsky napsané, za to se omlouvám, teprve s tím ve škole začínáme) <fieldset><legend>Převodník 2</legend> <form method="post"> <input name="prevod" value="nastupne" type="radio" checked />Z radiánů na stupně <input name="prevod" value="narad" type="radio" />Ze stupňů na radiány<br /> Zadej hodnotu: <input name="hodnota" type="text" size="5" /> <input class="tlacitko" value="Převést" type="submit" /> (desetinná místa odděl tečkou, nikoli čárkou) </form> <?php $vybrany = $_POST["prevod"]; $hodnota = $_POST["hodnota"]; if (isset($hodnota)) {if ($vybrany == "nastupne") {$vysledek = $hodnota * 180/pi(); $stupne = floor($vysledek); $m = floor(($vysledek - $stupne)*60); $s = (($vysledek - $stupne)*60 - $m)*60; echo $hodnota . " rad je " . $stupne . "° " . $m . "' " . round($s,0) . "''.";} else {$vysledek = $hodnota/180; $citatel = round($vysledek*1000,0); $jmenovatel = 1000; echo $hodnota . "° je <math><mrow><mfrac><mrow><mn>" . $citatel . "</mn></mrow><mrow><mn>" . $jmenovatel . "</mn></mrow></mfrac></mrow></math>π rad.";}} ?> </fieldset> |
||
Radek9 Profil |
#7 · Zasláno: 21. 3. 2014, 20:03:57
Xantippa:
Stačí najít největšího společného dělitele obou čísel. Zkus si vygooglit gcd funkci. ;-) |
||
Xantippa Profil |
#8 · Zasláno: 21. 3. 2014, 20:10:39
Musím se přiznat, ale jsem opravdová lama. Mohl bys mi, prosím, poradit konkrétněji? :)
|
||
Alphard Profil |
#9 · Zasláno: 21. 3. 2014, 20:24:17
Xantippa
V [#5] je klíčové slovo eukleidův algoritmus, v [#7] zase gcd. Oba jsou velmi dobře vyhledatelné. V php je nativně v knihovně GMP funkce gmp_gcd(), ale má mírně specifické použití, viz příklad v manuálu. Jinak není problém vyhledat vlastní 5řádkovou funkci pracující s klasickým integerem. Mohu-li doplnit začátečnický tip, doporučil bych přehledněji formátovat kód, alespoň odsazovat zanořené bloky, [#6] je velmi nepřehledný. |
||
Xantippa Profil |
Jo, vím, hledala jsem a našla jsem, ale jsem ztracená, na to prostě ještě nemám. Tak nějak jsem nadšená, že mi ten převodník funguje, i když je to vyloženě "zmastěné" (sama mám problém se v tom vyznat), a snad to tam někdy budu schopná zakomponovat. Díky za pomoc. :)
Opravuji: Zapotila jsem se, ale podařilo se, funguje. Ajťák by si nejspíš rval všechny vlasy z hlavy, ale co je doma, to se počítá! |
||
Časová prodleva: 10 let
|
0