Bug ili...?

1

Bug ili...?

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

//Ovaj kod u C#-u:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication5 {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }                 private void button1_Click(object sender, EventArgs e)         {             double br = 0;             for (int i = 0; i < 1000; i++)             {                 br = br + (double)0.1;                 rt1.AppendText(br.ToString()+"\n");             }         }     } }

//Pravi greshku vec kod iteracije gde je br=3, zashto? Isto se deshava i u Delphi-u...kako da se ovo izbegne?


snoop.edit: koristi code tag.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Zanimljivo.
Probao sam ovaj code;

         double br = 0;          for (int i = 0; i < 1000; i++)          {             br = br + (double)0.1;             textBox1.Text += br.ToString()+"\n";          }

I odradio je posao bez greske.

Koristio sam i StringBuilder, ali ni tu nije bilo greske.

Posto vidim da si ovo radio u VS.NET05, tu nisam probao, ali mislim da ne bi bilo nista razlicito.

Stavi umesto rt1.AppendText textBox1.Text pa vidi da li ce da radi tako.



offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Pricam napamet, posto ne mogu sada da isprobam, ali jesi li osigurao dovoljan broj linija u komponenti u koju unosis text?

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Nemoguce, na tri racunara nece ni sa konverzijom double da radi tacno, Snoop!!!
Problem je u predstavljanju brojeva u binarnom brojnom sistemu. Sa 0.2 ili 0.5 je O.K.
Nema veze sa brojem linija.
Shto je najchudnije prva greshka se pojavljuje kod 5, a u watch kod vrednosti 3!!!
Greshka je na 10-oj 11-oj decimali...

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Jesi probao ovo sto ti je snoop rekao: "Stavi umesto rt1.AppendText -> textBox1.Text pa vidi da li ce da radi tako."?

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Nema to veye, on u watch pokazuje grešku.Ovo štampanje je da ne bi debugirao.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Ne razumem kako kod tebe ne radi, a kod mene radi.

Ajde uploaduj Solution da vidim.

offline
  • Pridružio: 25 Jul 2003
  • Poruke: 431
  • Gde živiš: Nis

Pratite vrednosti br-a i videcete gresku kad treba da predje sa 2.9 na 3 a pri stampanju greska se pojavljuje kad treba da predje sa 5.9 na 6. Sa 5.9 ne prelazi na 6 vec na 5.99999...Jeste li to primetili?

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Bravo Janeze!
Nisam sam.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Hmm ti kad kazes gresku ti ustvari mislis na to sto je "janez" rekao?

Ko je trenutno na forumu
 

Ukupno su 1067 korisnika na forumu :: 17 registrovanih, 3 sakrivenih i 1047 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: dekao, Dorcolac, GandorCC, laurusri, Lazarus, maCvele, Mi lao shu, operniki, procesor, Ripanjac, S2M, saputnik plavetnila, Trpe Grozni, uruk, Vlada1389, zlatkoa987, Žoržo