Autor | Zpráva | ||
---|---|---|---|
houbeless Profil |
#1 · Zasláno: 16. 12. 2007, 17:44:24
Zdravim,
Mám číslo v db, které je vždy typ decimal, ale ne vždy je desetinné, bývá i jen celé. Když dotazem dostanu toto číslo, potřeboval bych zjistit nějakou funkcí, jestli je celé nebo jsou za desetinnou čárkou nějaká čísla(tj. zda je desetinné). Nevíte jak jednodušet toto zjistit? PS: nepotřebuji nějaké zaokrouhlování, absolutní číslo a podobně.. Díky |
||
r0me0 Profil |
#2 · Zasláno: 16. 12. 2007, 17:49:55
žeby is_float() ?
|
||
Joker Profil |
#3 · Zasláno: 16. 12. 2007, 17:50:15
Například: číslo má desetinnou část, pokud rozdíl toho čísla a jeho celé části dá nenulový výsledek.
|
||
houbeless Profil |
#4 · Zasláno: 16. 12. 2007, 18:00:46
Joker
No jasně, takhle to taky jde, že se to spočítá. Podle vás tedy není přímo funkce na ověření, jestli jsou za des. čárkou nějaká čísla nebo nuly? |
||
tiso Profil |
#5 · Zasláno: 16. 12. 2007, 18:04:22
Nie je.
|
||
houbeless Profil |
#6 · Zasláno: 16. 12. 2007, 18:05:53
Tak pěkně děkuju :)
|
||
tiso Profil |
#7 · Zasláno: 16. 12. 2007, 18:14:38
Ale funguje kombinácia funkcií: if(!is_int((int)$cislo) AND is_numeric($cislo)){//$cislo je desatinne
|
||
houbeless Profil |
#8 · Zasláno: 16. 12. 2007, 18:32:16
No ale tady stačí použít is_float, já nepotřebuju zjistit, že číslo je des. - to vím, to je vždycky. Já potřebuju zjistit případy, kdy je celé, bez desetin, nebo kdy má za čárkou další čísla...
|
||
Joker Profil |
#9 · Zasláno: 16. 12. 2007, 18:40:22
ad r0me0, tiso: jenže to jsou funkce PHP, celou část (případně absolutní hodnotu nebo zaokrouhlení) a rozdíl by šlo dostat už přímo do databázového dotazu.
|
||
houbeless Profil |
#10 · Zasláno: 16. 12. 2007, 18:50:32
to je fakt, že bych se mohl zeptat přímo sqlem, jestli to pujde. mrknu do manuálu..
|
||
houbeless Profil |
#11 · Zasláno: 16. 12. 2007, 18:54:15
Ale vlastně to neni potřeba, já to celé číslo potřebuju řešit jen na úrovni php. jestli to jde v sql, je jen pro zajímavost..Díky
|
||
djlj Profil |
#12 · Zasláno: 16. 12. 2007, 18:56:11
V SQL tu část vybereš pomocí SUBSTRING_INDEX.
|
||
koudi Profil |
#13 · Zasláno: 16. 12. 2007, 19:01:23
Jde ti o to, jestli to tam čistě je/není, nebo potřebuješ i tu hodnotu. Z db by to (v případě mysql) šlo třeba sloupec - FLOOR(sloupec) as DesetinnaCast
|
||
houbeless Profil |
#14 · Zasláno: 16. 12. 2007, 19:08:37
vyřešil jsem to v php takto:
$wholenum = $number; $wholenum = number_format($wholenum,0); // (popř. floor) if (($number - $wholenum) == 0) { $number = number_format($number,0,'',' '); } else {} echo $number; Sql je už tak docela dlouhý, nebudu to komplikovat. |
||
Joker Profil |
#15 · Zasláno: 16. 12. 2007, 19:32:27
Místo number_format bych použil raději floor.
Jednak je to použití funkce k účelu, ke kterému se nehodí a jednak to skoro určitě bude mít větší režii, než floor. |
||
Časová prodleva: 16 let
|
0