Divná hodnota v proměné typu double   zodpovězená otázka

VB.NET, Algoritmy

Zdravím,

napsal jsem si aplikaci na vykreslení jednoduché křivky.

Ale do proměné X0 se mi dostávají divné hodnoty.(Druhý řádek dole)

http://img836.imageshack.us/i/lmap1.jpg/

http://img809.imageshack.us/i/lmap2.jpg/

Zvětšování a zmenšování mám ošetřeno takhle:

    Private X0 As Double = 0.2
    Private Gr As Double = 2.95

    Private Property _X0 As Double
        Get
            Return Me.X0
        End Get
        Set(ByVal value As Double)
            If value <= 1 And value >= 0 Then
                Me.X0 = value
            End If
        End Set
    End Property
    Private Property _Gr As Double
        Get
            Return Me.Gr
        End Get
        Set(ByVal value As Double)
            If value > 0 And value <= 4 Then
                Me.Gr = value
            End If
        End Set
    End Property
'a tady metoda ovládání
    Private Sub Ovladani(ByVal O As Object, ByVal e As KeyEventArgs) Handles Me.KeyUp
        Select Case e.KeyCode
            Case Keys.Q
                Application.Exit()
            Case Keys.Escape
                Application.Exit()
            Case Keys.J
                _X0 += 0.01
                Invalidate()
            Case Keys.K
                _X0 -= 0.01
                Invalidate()
            Case Keys.U
                _Gr += 0.05
                Invalidate()
            Case Keys.I
                _Gr -= 0.05
                Invalidate()
        End Select
    End Sub

Otázka je jak se dostane ta jedna biliardtina(nevim typuju) do proměné X0 ?

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Počátání s plovoucí čárkou je nepřené (viz. NPU, dnes v CPU), hodnota _X0.Epsilon představuje jistou odchylku od přesného čísla. Pokud je to možné použijte integer, ušetříte si problémy.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback