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

    [vb2010] Appossimazioni double

    Dim A, B, C as Double

    A = 4.00
    B = 3.93
    C = B - A

    Debug.Print (C.ToString)

    -0,0699999999999998



    Come riportare in maniera elegante C al corretto valore?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C.ToString("0.00")
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Originariamente inviato da oregon
    C.ToString("0.00")
    Per "arrotondare" io uso:
    codice:
    System.Math.Round(C, 2)
    c' è qualche differenza sostanziale tra i due metodi?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se scrivi

    C = System.Math.Round(C, 2)

    memorizzi il nuovo valore arrotondato in C

    Nel caso che ti ho presentato il valore di C non viene modificato ma l'approssimazione avviene solamente per la visualizzazione.

    Può servire sia usare il primo metodo sia il secondo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Originariamente inviato da oregon
    Se scrivi

    C = System.Math.Round(C, 2)

    memorizzi il nuovo valore arrotondato in C

    Nel caso che ti ho presentato il valore di C non viene modificato ma l'approssimazione avviene solamente per la visualizzazione.

    Può servire sia usare il primo metodo sia il secondo.
    Capito! Grazie per la spiegazione.
    Ciao

    Vincenzo

  6. #6
    Ty to all, e soprattutto a oregon: C.ToString("0.00") è proprio quello che mi serviva.

  7. #7
    In ogni caso, se questo genere di errori non sono tollerabili (tipicamente in applicazioni finanziarie) bisogna usare tipi in virgola fissa o numeri in virgola mobile in base 10; il .NET Framework ad esempio fornisce il tipo Decimal.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.