Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET]
Forum - C# / VB.NET - [VB.NET]

Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 12:48
Mercoledì, 26/03/2014
Buongiorno, sto facendo un programma che mi calcola gli interessi annui su un importo.
Il codice è questo:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.         totaleinteressi.Text = ((Val(sanzione.Text) * Val(interessi.Text) / 100) / 12) * Val(numerorate.Text)
  3.         totalepagare.Text = (Convert.ToDouble(sanzione.Text) + Convert.ToDouble(totaleinteressi.Text))
  4.  
  5.     End Sub



Però capita che a volte il risultato da come numero decimali dei numeri periodici o con tre numeri dopo la virgola, come posso fare per far visualizzare solo due numeri dopo la virgola?


Gianluca
PM Quote
Avatar
R0gerBlack (Member)
Expert


Messaggi: 210
Iscritto: 10/06/2010

Segnala al moderatore
Postato alle 13:46
Mercoledì, 26/03/2014
Puoi usare la funzione Math.Round:
(documentazione http://msdn.microsoft.com/it-it/library/zy06z30k(v=vs.110) ...
Codice sorgente - presumibilmente C#

  1. public static decimal Round(
  2.         decimal d,
  3.         int decimals
  4. )



(uso pratico)
Codice sorgente - presumibilmente VB.NET

  1. 'Codice da mettere alla fine di Sub Button1_Click
  2. Dim num As Decimal = totalepagare.Text
  3. num = Math.Round(num, 2)
  4. totalepagare.Text = num



Volere è potere.

Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5701
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:00
Mercoledì, 26/03/2014
Più semplicemente

Codice sorgente - presumibilmente Plain Text

  1. totalepagare.Text = (Convert.ToDouble(sanzione.Text) + Convert.ToDouble(totaleinteressi.Text)).ToString("0.00")




P.S. Perché nella prima linea utilizzi la Val ???

Ultima modifica effettuata da nessuno il 26/03/2014 alle 14:01


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 15:08
Mercoledì, 26/03/2014
Uso il Val sennò non mi fa l'operazione; molto comoda la funziona
Codice sorgente - presumibilmente Plain Text

  1. ToString.("0.00")



però quando faccio il comando per calcolare questa riga di codice
Codice sorgente - presumibilmente Plain Text

  1. totaleinteressi.Text = ((Val(sanzione.Text) * (interessi.Text) / 100) / 12) * Val(numerorate.Text).ToString("0.00")



Il risultato di totaleinteressi.Text viene con 4 cifre dopo lo zero, come mai?


Gianluca
PM Quote
Avatar
ju89 (Normal User)
Pro


Messaggi: 61
Iscritto: 26/03/2014

Segnala al moderatore
Postato alle 15:31
Mercoledì, 26/03/2014
Ho risolto aggiungendo .ToString("0.00") prima della moltiplicazione ed ho risolto.
Grazie siete stati gentilissimi.

Ultima modifica effettuata da ju89 il 26/03/2014 alle 15:31


Gianluca
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5701
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:32
Mercoledì, 26/03/2014
Non hai capito ... al posto della Val dovresti usare la Convert.ToDouble


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote