Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    VBNet - Sottrazioni errate?

    Ciao, ragazzi!
    Nel fare questa domanda sono perplesso, perchè non so che pensare, se il mio PC è peggio di una calcolatrice tascabile o se sono io che scrivo male il codice (questa me la potevo risparmiare, perchè sarà così quasi certamente... anzi senza il quasi).
    Il fatto è che se faccio eseguire delle semplici sottrazioni a due cifre decimali, alcune volte il risultato appare corretto, mentre altre mi appare con una sfilza di numeri dopo la virgola che non so da dove se li inventi!
    Solo se uso Format mi dà una parvenza di risultato corretto (ma devo fidarmi?).
    Qualcuno può spiegarmi per piacere dove sta l'errore? E soprattutto se c'è un sistema per far apparire il risultato corretto?
    Grazie!

    Questo è il codice:
    [CODE]
    Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim num_1, num_2, num_3 As Double
    Randomize()
    num_1 = CDbl(Int((2000 * Rnd()) + 2000))
    num_1 = num_1 / 100
    num_2 = CDbl(Int((2000 * Rnd()) + 2000))
    num_2 = num_2 / 100
    num_3 = num_1 - num_2

    Label1.Text = num_1.ToString
    Label1.Location = New Point(15, 30)
    Label2.Text = num_2.ToString
    Label2.Location = New Point(15, 60)
    Label3.Text = num_3.ToString
    Label3.Location = New Point(15, 90)
    Label4.Text = Format(num_3, "#0.00")
    Label4.Location = New Point(15, 120)
    End Sub
    End Class

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Utilizza i decimal invece che i double.
    Per capire il perchè fai una ricerca sui double e i decimal...
    I got the remedy

  3. #3
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Perfetto!!! Grazie! Ora mi è chiaro!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.