Cum se găsește numărul de zecimale

Cum știu numărul de zecimale?


met: = 2;
PrBuf: = (Deal.Price-Int (Deal.Price)) * 10;
În timp ce adevărat face
# xA0; începeți
# xA0; PrBuf: = PrBuf * 10;
# xA0; dacă (PrBuf-Int (PrBuf)) = 0 atunci se rupe;






# xA0; inc (met);
# xA0; sfârșitul;

Lucrări, cu excepția cauzei 100.023
În acest caz, scăderea scăderii este anormală.
Poate că se poate face în general?

poți. considerați că acestea sunt întotdeauna, de exemplu, 8.

Am nevoie de o cantitate, dar nu mai puțin de două. Aceasta este pentru tipărirea unui document oficial

aproximativ vorbind despre a treia iterație, obținem ceva în formularul 23-23 = 0.0000..000123123

Ieșiți de la numărul dvs. un întreg, rămâne după virgulă Lungime (IntToStr (S))

Conversia la un șir, lucrul cu un șir.

sau exponentul sau el însuși specifică numărul de semne și trebuie să-i cunosc numărul

În plus, după astfel de quirks aritmetice pentru a deveni ca nu este foarte ușor pe suflet.

Dacă numărul este reprezentat cu inexactitate, atunci numărul de caractere nu poate fi cunoscut. Ei bine, dacă numărul este reprezentat exact, atunci traduceți într-un sistem zecimal și numărați zerouri.


> # xA0; dacă (PrBuf-Int (PrBuf)) = 0 atunci se rupe;

Utilizează matematica
dacă IsZero (PrBuf) se rupe apoi;

> [7] arhis
> sau un exponent sau indicați numărul de semne a
> Trebuie să-i cunosc numărul
specificați mai multe, eliminați excesul de zerouri - interzicerea religiei?

În [12] puteți corecta o tipografie

2.842 * 10-14 nu este zero

> [17] arhis
> din nou, sunt prea confuz
> rezultatul extravagant al celor mai simple
> operație matematică.
"Acestea sunt duplicatele pe care le avem simplu" (c)

Acest mister este minunat.
0,0012 de lucrări
0.0011 nu funcționează


> Acest mister este minunat.

- Da, numarati Pi pana la ce semn sa afisezi?
Înțelegeți chiar că de fiecare dată când vă înmulțiți cu 10, creșteți eroarea cu un factor de 10?
Am extins 19-20 - un număr semnificativ, înmulțirea cu 100 - 100023, și veți obține eroarea (19-5) este semnul (2.842 * 10-14), iar apoi această eroare poate crește. Un alt lucru este că, în funcție de valoarea specifică, eroarea de multiplicare cu 10 poate fi zero - dar este mai probabil o excepție.

> [20] han_malign (c) 06-09-21 18:30
Afftaru deja a sugerat acest lucru. % -)

Nu înțeleg destul unde sunt erorile?
Eu iau numărul 0.023 și îl înmulțesc cu 100, și întotdeauna am 2.3 chiar dacă e crăpat. apoi se înmulțește cu zece mai mult și obțineți 23. Apoi, doar scădea de la 23 23 și nu obțineți zero?
Unde este greșit logica mea?

> [23] arhis 06-09-21 18:54
> Ketmar c # xA0; (21.09.06 18:37) [21]
> Sunteți, domnule, ați fi încercat să explicați mai bine ce
> problema nu este exercitată în sugestii.
De fapt, eu decid cum și ce să-mi scriu. Prefer să învăț să lucrez cu capul, nu cu fălcile. dacă există o moschee în cap, atunci este suficient un indiciu. dacă nu, atunci chiar textul deschis nu va ajuta.

ARHIS # xA0; (21.09.06 18:52) [22]
Nu înțeleg destul unde sunt erorile?

dacă Trunc (10) = 0 atunci Label1.Caption: = "exact zece" altceva Label1.Caption: = "există o eroare";

> [25] Virgo_Style (c) 06-09-21 19:37
ce este, lasă-mă să mă cert? nu există erori în întregi. % -)

> Iau numărul 0.023 și îl înmulțesc cu 100 și întotdeauna am 2.3 chiar dacă este spart.
În acest caz, aveți dreptate. Dar programul tău face altceva. Numărul 0.023 nu poate fi reprezentat exact în 2 s / c, deci orice calculator binar îl va păstra aproximativ ca o fracție periodică rotunjită. Când se înmulțește cu 100, grilă de număr este depășită, deci procesorul # xA0, de asemenea, rotunjește rezultatul. Ca urmare, nu veți obține 2,3. Mai mult decât atât, numărul 2,3 nu poate fi, de asemenea, reprezentat într-un calculator, chiar crack. Un alt lucru este că dacă traduceți rezultatul în 10 s / s și rotunjiți la zece, veți obține 2,3. În probleme, cum ar fi numărul dvs. este stocat sub forma de numere întregi (ca rezultat al înmulțirea numerelor inițiale pentru un număr mare de ceva) sau ca o zecimală, dar apoi să pună în aplicare în mod independent aritmetica pe astfel de numere, sau de a folosi pachete gata făcute.







Întrebări ca ale dvs. sunt solicitate o dată pe săptămână și deja obosite de toată lumea. Mai mult decât atât, ele sunt adesea însoțite de lipsa de voință a celui care dorește să înțeleagă ce se întâmplă cu adevărat și de modul în care totul este aranjat în interior. Prin urmare, o astfel de reacție. Nu fi ofensat.

> [28] Virgo_Style (c) 21-Sep-XLI A.S. 19:59
> Acest lucru. hmm. Stupiditate unele, cel mai probabil% -)
dintr-un motiv, m-am gândit așa. % -)

Sincer, nu prea înțeleg de ce debuggerul spune cu bucurie că am amândoi acolo și acolo 23 și nu le pot deduce. Comportamentul ciudat al sistemului în ansamblu. Nu-mi pasă cum o eroare de calculator găsit în această celulă am 23. El însuși nu-i pasă atunci când îmi arată că există 23 și el dintr-o dată amintește despre această eroare în operația aritmetică.
Mai ales că nu înțeleg acest lucru, deoarece programul nu numai că se înmulțește cu 10 în grade diferite și nici o problemă până când acest punct a fost.

În ceea ce privește restul, pot spune că nu am transformat doar un forum pentru începători și cu siguranță n-am gândit niciodată la reprezentarea numerelor într-un sistem binar. Am sarcini complet diferite

> [31] arhis 22-Sep-XLI A.S. 10:36
> Ketmar c - flooder.
nu esti primul. aici undeva pe site există un link - "scrie administratorului". puteți împărtăși cu observația valoroasă Maxim. sau aici - dezabonați în mod specific moderatorului acestei secțiuni. spun ei, ajută prea.

afterglow: Mă întreb ce ar trebui să fie sarcinile, dacă vă gândiți la modul în care mașina reprezintă numerele - nu. "Tramvaiul funcționează astfel - vzh-zh-zh, jin, jin"?


> [15] arhis # xA0; (09/21/06 17:12)

Mă uit că nu v-ați deranjat să vă ocupați de [12] + [14].
Afișați din nou
Opțiunea ta
dacă (PrBuf-Int (PrBuf)) = 0 atunci se rupe;

Opțiune corectă
Utilizează matematica
dacă IsZero (PrBuf-Int (PrBuf)) se rupe apoi;

Uită-te la dispozitivul IsZero.


> debugger Eu fericit raportează că am atât acolo și acolo 23

- pentru că cei care au scris depanatorul, spre deosebire de dvs., știau despre trăsăturile reprezentării mecanice a numerelor cu puncte în virgulă și au scris despre aceasta, în primul rând, pentru cei care știu. Și pentru bont - VCL razrazrabotchiki - a scris FloatToStr, și fraza, „Da, religia mea nu-mi permite o problemă pur matematice de rezolvare linia chernez.“ - nu citat, până când sunteți în acest "matematică pură" nu pot înțelege.

Și vă spun încă o dată că această eroare blestemată nu este zero.

Domnilor, aveți aici o incomprehensibilitate în amploarea a ceea ce se întâmplă. Judecând după activitatea dvs. din rețea, ați citit cu toții despre legea abstractizărilor scurte. Dacă considerăm că orice persoană care scrie în Delfi se află chiar în partea de sus a acestei ierarhii de abstracții, # xA0, de aceea scriu în Delfi, sistemul ar fi trebuit să mă protejeze de o astfel de gaură chiar în fundație. Eu, o afacere păcătoasă, am crezut că este așa. Ceea ce, după părerea mea, este destul de evident, pentru că chiar și pentru acest rege al munților de abstracțiuni, adică pentru mine, este încă profund cât de greșit este calculat acest zero. Și în ce sistem este, da, chiar și în rămășițele zecimale.

Acum, despre stupid. Profesorul meu în matematică a avut o vorbă preferată - permiteți sclavilor să conteze. Orice programator, este în primul rând un algoritmist, iar algoritmul este scopul său, totul pentru sclavi.

ARHIS # xA0; (22.09.06 12:48) [37]
Domnilor, aveți aici o incomprehensibilitate în amploarea a ceea ce se întâmplă.

ARHIS # xA0; (22.09.06 12:48) [37]
Regele muntelui abstractizărilor, care sunt eu


> Orice programator, acesta este în primul rând un algoritm și un algoritm
> și este scopul lui, totul pentru sclavi.

- și în orice șobolan singur scop - să sape, și faptul că nu este clar cum să sape sol stâncos, cu o lopată, iar figura aici este ceea ce e ca (t) Ranny cazma - deci acest lucru este în mod clar un producătorii de defect - acestea sunt vinovați.


> Profesorul meu în matematică a avut o vorbă preferată - permiteți sclavilor să conteze.

- și dacă denumirea disciplinei - „Metode numerice“ și „Matematici discrete“ - pentru că te dezorientare, ești prea leneș izachat isntrumentary - că, pentru nivelul de rezumate tale ambitie, podoytet fin Visual Basic Script-uri pentru MSOffice.
"Microsoft - tu crezi pentru noi."

Memorie: 0,81 MB
Durată: 0,05 secunde







Articole similare

Trimiteți-le prietenilor: