2010 Rugsėjo 04 00:22:15
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 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 VIP hostingas

bullet Pask. komentarai
bullet Skriptų biblioteka
bullet Administracija
spacer
Vartotojų tinkle
Prisijungusių svečių: 14
Prisijungusių narių: 10
Prisijungę nariai: KiešaLT, Wcore, Nergiz, RyaN, Elite, SoGa, gY, manex, NeRoN, FanatiC

Registruoti nariai: 14,829
Naujausias narys: M1rox
spacer
Support saitaion
spacer
Paskutiniai straipsniai
Įprasti:
bullet Efektyvių interneto ...
bullet Php-Fusion UTF-8 režimu
bullet Python, Django, Post...
bullet Apsauga nuo virusų
bullet mail()

Skirti naujokams:
bullet PHP foreach ciklas
bullet Styles.css reikšmės
bullet Kaip suchimodint fai...
spacer
Paskutiniai nariai
RyaNNaršo
manexNaršo
gYNaršo
WcoreNaršo
NergizNaršo
NeRoNNaršo
SoGaNaršo
FanatiCNaršo
EliteNaršo
KiešaLTNaršo
zwimba00:07:53
nesby00:09:44
NofiNe00:10:41
EFectaz00:11:48
Zeck00:11:53
keistas00:12:56
UseGoogle00:13:43
Karolis00:16:02
Narysx00:19:27
interaktyvus00:20:34
spacer
Informacija:

OS: Unknown
Naršyklė: Nežinoma
IP: 38.107.191.98
Naujienų: 419
Straipsnių: 211
Temų: 29,709
Postų: 383,554
Postų pask. parą: 303
Shout'ų pask. parą: 216
P.S.C. pask. parą: 536
Nuotraukų: 65

Hey.lt lankomumo statistika
spacer
Facebook
php-fusion-facebook
tapk-php-fusion-gerbeju-facebook
spacer
Reklama 400x60
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 · 527 Skaityta · Spausdinti
Komentarai
KiešaLT 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.

bullet s1Nk
2010/09/03 23:39
Gal kas gali pasakyt assasin creed 2 cd-key? nežino

bullet pixc3l
2010/09/03 23:25
Naujas L2 pwp Serveris šypsosi www.l2-sorento.xe.lt

bullet Arvydas
2010/09/03 22:46
aš galiu , skype: Necty1. Parašyk.

bullet TooEasy
2010/09/03 22:45
kodot nedaug tik sumaiznt paneliu plocius ir centriniu paneliu ploti padidint akinanti šypsen

bullet TooEasy
2010/09/03 22:44
kas galit kas nors per kodoti dizaina sumokeciau iki 5 lt sms nežino

bullet Šaukyklos archyvas bullet
spacer
Apklausa
Ar džiaugiatės sulaukę naujų mokslo/studijų metų?

Taip

Ne

Nei mokausi nei studijuoju

Norėdamas balsuoti turite prisijungti.
Archyvas
spacer