2010 Kovo 13 11:31:06
Navigacija
bullet Namai
bullet DUK
bullet Straipsniai
bullet Siuntimai
bullet Modai šiame saite
bullet D.U.K. Informacija
bullet Hostingai
bullet Domenai
bullet ! Pagrindinės temos !
bullet Forumas
bullet PAIEŠKA !
bullet Foto galerija
bullet Web nuorodos
bullet Naujienų kategorijos
bullet Įrankiai
bullet Didž. Php-F saitai
bullet TOP Nariai

bullet Siųstis PHP-Fusion
bullet Siųstis v7 lietuvybę
bullet Naudotojo vadovas v7
bullet DEMO
bullet Guidelines
bullet Code Of Conduct

bullet LT Pagrindinis
bullet LT Themes
bullet LT Modai

bullet Reklama
bullet Mano ekstros

bullet Pask. komentarai
bullet Skriptų biblioteka
spacer
Vartotojų tinkle
Prisijungusių svečių: 21
Prisijungusių narių: 23
Prisijungę nariai: Mange, apželtukas, Nepas, fLap, _Beta, Arvydėlis, iMantux, Vierchas, Gytisz_, Armexx, new, iMorileC, zezan, airix125, deivukx, NoNy, EfiGe, WyPuk, Konstantinas, Sub, RmxLT, Saul1us, LGkm380

Registruoti nariai: 13,286
Naujausias narys: airix125
spacer
Support saitaion
spacer
Paskutiniai straipsniai
PHP Cookies [Sausain...
Referencų naudojimo ...
Lentelių kūrimas (HTML)
Lentelės puslapyje
Kaip įdėti Analytics...
Virusai
if (...else)
Tekstinis skaitliukas.
spacer
Paskutiniai nariai
iMorileCNaršo
NoNyNaršo
iMantuxNaršo
apželtukasNaršo
KonstantinasNaršo
NepasNaršo
VierchasNaršo
_BetaNaršo
RmxLTNaršo
LGkm380Naršo
airix125Naršo
SubNaršo
Saul1usNaršo
ArvydėlisNaršo
EfiGeNaršo
Gytisz_Naršo
ArmexxNaršo
MangeNaršo
newNaršo
deivukxNaršo
spacer
Informacija:

OS: Unknown
Naršyklė: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
IP: 38.107.191.115
Naujienų: 396
Straipsnių: 179
Temų: 24,587
Postų: 325,440
Postų pask. parą: 473
Shout'ų pask. parą: 243
P.S.C. pask. parą: 729
Nuotraukų: 62

Hey.lt lankomumo statistika
spacer
Facebook
php-fusion-facebook
tapk-php-fusion-gerbeju-facebook
spacer
Reklama 400x60
Forex forum   Lineage 2   seo paslaugos   Vidaus apdaila   Idomios Naujienos  
CAST'inimas, realiųjų skaičių palyginimo problemos sprendimas, bei CAST'inimas
Parašė ozzWANTED 2010 sausio 20 10:23:07


Trumpas kodas:

<?php
$i=1; $bal = 7.8;
$moketi = 1.5;
$m2 = 1.5*5.2;
print("<br /><i>".$i++.".</i> "); echo $m2." VS ".round($m2,2);
print("<br /><i>".$i++.".</i> "); echo ($moketi*5.2 > $bal) ? "true" : "false";
print("<br /><i>".$i++.".</i> "); echo ($m2 > $bal) ? "true" : "false";
print("<br /><i>".$i++.".</i> "); echo ((int)$m2 > (int)$bal) ? "true" : "false";
$m2= round($m2,2);
print("<br /><i>".$i++.".</i> "); echo ($m2 > $bal) ? "true" : "false";
?>




Kaip manote kokius atsakymus(TRUE ar FALSE) gražins sistema 4 kartus lygindama skaičius: 7.8 > 7.8 ?
Jeigu manote kad visus kartus atsakymas bus"false", JŪS KLYSTATE:

Štai ką gražina output'as:
1. 7.8 VS 7.8
2. true
3. true
4. false
5. false




Atkreipkime dėmesį, kad netgi perCAST'inimas į slankaus kablelio skaičius(real'ieji skaičiai).

Dar vienas pavyzdys:
floor((0.1+0.7)*10);




Kaip atsakymą gražins skaičių 7 !
Nors matematiškai turėtų būti 8.

Kadangi realieji slankaus kablelio skaičiai yra kompiuterijoje traktuojami kaip eilutės skleidinys. Pvz. tokiu būdu kompiuteris gali gražinti skaičiaus pi apytikslę reikšmę - ji skleidžią skaičių Teiloro eilute iki tam tikro tikslumo(t.y. VISADA egzistuoja paklaida).

Taigi, naudojanti slankaus kablelio skaičius BŪTINA žinoti, kad VISADA egzistuoja paklaida, ir PASKUTINIU skaičiumi pasitikėti nereikėtų.

Prie to paties, kas galbūt nežino kas yra CAST'inimas, Slankaus kabelio skaičiai(angl. floating-point numbers), šiek tiek informacijos:

Pagal nutylėjimą "String'ai" matematiniuose veiksmuose yra traktuojami kaip:
a) (integer) tipo skaičiai, jeigu string eilutėje nėra '.', 'e' arba 'E' simbolių;
b) (float) skaičiai, prišingu atveju.

Visi galimi kintamųjų/skaičių perdengimai(CAST'ing) PHP kalboje:
(int), (integer) - cast to integer
(bool), (boolean) - cast to boolean
(float), (double), (real) - cast to float
(string) - cast to string
(binary) - cast to binary string (PHP 5.2.1 PHP 6)
(array) - cast to array
(object) - cast to object
(unset) - cast to NULL (PHP 5)




MySQL duomenų tipų castinimas:
Prie to paties pridėsiu - jeigu norite CAST'inti duomenų tipus MySQL užklausose(nors apskritai CAST'inimas panašus SQL2 standartų kaip ir daugelyje kitų DBVS - MSSQL, Oracle, IBM DB2, Postgre SQL), tai jis vykdomas taip:

Užklausoje galima būtų daryti taip:
mysql > SELECT 91.2 AS tiksli_apimtis,
CAST(91.2 AS UNSIGNED INTEGER) AS apytiksle_apimtis,
'K.I.S.S.' AS pilna_biografija,
CAST('K.I.S.S.' AS BINARY) AS dvejetaine_biografija,
CAST('K.I.S.S.' AS CHAR(2)) AS apytiksle_apimtis;




Užklausos rezultatas būtų:
tiksli_apimtis  apytiksle_apimtis  pilna_biografija  dvejetaine_biografija  apytiksle_apimtis
----------------------------------------------------------------------------------------------------------------
91.2               91                          K.I.S.S.               K.I.S.S.                        K.




Visi galimi MYSQL CAST'inimo būdai(MySQL 5.0+):
BINARY[(N)] - į dvejetainį formatą(pre-direktyva skirta kompiliatoriui)
CHAR[(N)] - į simbolių formatą.
DATE - į datos formatą (YYYY-MM-DD)
DATETIME - į ilgąjį datos formatą (YYYY-MM-DD HH:II:SS)
DECIMAL[(M[,D])] - į dešimtainį formatą
SIGNED [INTEGER] - į skaičių aibę (-INF ---> +INF)
TIME - į laiko formatą(HH:II:SS / HHH:II:SS (ilgasis laikas))
UNSIGNED [INTEGER] - į teigiamų skaičių aibę ( >= 0)

Pastaba: [] - žymi kad parametras neprivalomas. [] simbolių rašyti NEREIKIA



Taip pat keletas nuorodų, norintiems pasiskaityti plačiau:
Duomenų tipų perliejimas(CASTing) MySQL:
http://dev.mysql.com/doc/refman/...tions.html

Duomenų tipų perliejimas(CASTing) PHP:
http://lt.php.net/manual/en/lang...ggling.php

Slankaus kablelio skaičiai:
http://php.net/manual/en/languag....float.php

PhpFusion-Lt.com © 2010 ozzWANTED


2 Komentarai · 336 Skaityta · Spausdinti
Komentarai
apželtukas 2010 sausio 24 19:22:24
nu nx nk nesuprantu apie ka čia ;DD
Dyaz 2010 vasario 28 21:42:35
Įžangos nėra... be žado
Rašyti komentarą
Prisijunkite, norėdami parašyti komentarą.
Reitingai
Balsuoti gali tik nariai.

Prašome prisijungti arba prisiregistruoti.

Nuostabu! Nuostabu! 0% [Nėra balsų]
Labai gerai Labai gerai 33% [1 Balsas]
Gerai Gerai 0% [Nėra balsų]
Patenkinamai Patenkinamai 0% [Nėra balsų]
Blogai Blogai 67% [2 Balsų]
Prisijungti
Nario vardas

Slaptažodis



Dar ne narys?
Registruokis

Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save
spacer
Šaukykla
Jei norite rašyti žinutes, turite prisijungti.

Vierchas
2010/03/13 11:21
Chebra gal žinot iš kur gaut Gera veikiančia Medalių sistema ant v6?

deivukx
2010/03/13 11:11
gal kas norit ledines.com keist i steama? akinanti šypsena

Noyz
2010/03/13 10:49
juokiasi

Capricorn
2010/03/13 10:41
o,tai ką tu galvoji? akinanti šypsena

Noyz
2010/03/13 10:40
Botas tynginys akinanti šypsena

Šaukyklos archyvas
spacer
Apklausa
Ar laukiate ateinančio pavasario?

Labai laukiu!

Laukiu, bet neypatingai...

Nelaukiu. Žiemą įdomiau!

Jau per vėlu laukti pavasario. Jis jau atėjo!

Man tas pats. Lyja, sninga, griaudžia... Vistiek suporte sėdžiu.

Norėdamas balsuoti turite prisijungti.
Archyvas
spacer