2016-03-31 4 views
1

ich an einem Projekt arbeite, in dem so etwas wie ein Rechner für Quadratische Gleichungen und andere Teile. Eine der Aufgaben besteht darin, eine Genauigkeitsoption zu treffen, damit der Benutzer die Rundung zwischen 1 bis 5 Dezimalstellen einstellt.Visual Basic Herstellung eine globale Rundenfunktion

Ich habe eine Art von Funktion bereits erstellt, um dies zu tun, aber was ich brauche, ist eine Möglichkeit für das Programm, die Werte zu runden, wenn es zwei verschiedene Ergebnisse (dh quadratische Gleichungen) gibt, wenn ich meine Funktion zu Joins verwenden Die beiden antworten und runden sie ab.

Wie mache ich die Variable, die die Ergebnisse und die Funktion enthält, die das Ergebnis der Lage, rundet sein, ohne zu speichern, zwei unterschiedliche Antworten sie anzuschließen? oder vielleicht habe ich den Code nicht so geschrieben wie er sein soll? Irgendwelche Tipps?

ich die Math.round Funktion verwenden.

Hier ist der Code; zu „Ergebnis“ der Berechnung und führen Sie dann die Funktion round()

  • DP und Ergebnis sind globale Variablen

    Function Accuracy() 
        Dim choice As Integer = 0 
        Console.WriteLine("This is the accuracy option") 
        Console.WriteLine("Enter the decimals places to be set from 1 - 5") 
        DP = Console.ReadLine() 
        Console.WriteLine("The current decimals places are set to: " & DP) 
        ... 
    
    Function round() 
        Result = Math.Round(Result, DP) 
    End Function 
    

    Die Art, wie ich es war das Ergebnis, indem = zu machen versucht, an die Arbeit.

+0

Sind Sie VB .net oder VBA verwenden? Tags unklar ... Ich würde eine Klasse erstellen, die beide Wert speichern kann, ein echtes Ergebnis und eine abgerundete ... –

+1

basierend auf 'Console' und' Math' Klassen würde ich sagen, das ist nicht VBA –

+0

Nie absichtlich werfen Rechengenauigkeit weg. Nur rund zum Nutzen des menschlichen Auges, tun Sie dies mit Composite-Formatierung. –

Antwort

-1

Ok hier ist im Grunde die Struktur I bauen würde. Denken Sie daran, ich weiß nicht, über Ihr Projekt und noch weniger über quadratische Gleichungen ...

Datei MyResult.vb

Public Class MyResult 
    Public Property Result as Double 'I suppose 
    Public Property RoundedDecimals as Integer 'We hold here the rouding 
    Public Readonly Property RoundedResult as Double 
    Get 
    Return Math.Round(Result, RoundedDecimals) 
    End Get 
    End Property 

    Public Sub New(Result as Double) 
    Me.Result = Result 
    RoundedDecimals = 5 
    End Sub 

    '... End of your class 
End Class 

Datei MainModule.vb

Public Module MainModule 

    Sub Main() 
    'Calculate your stuff 
    ...   

    'Create your result 
    Dim Result As New MyResult(CalculatedValue) 

    'Ask for Rounding 
    Dim round = 0 
    Do 
     Console.WriteLine("Enter number of decimals : ") 
     round = Console.ReadLine() 
    while not Integer.TryParse(round, Result.RoundedDecimals) 

    'Displaying rounded result 
    Console.WriteLine("Rounded Result is {0}", Result.RoundedResult) 

    '... 
    End Sub() 

End Module 
+0

und damit der Benutzer den Rundungswert eingeben kann, tun Sie einfach RoundedDecimals = console.readline() ?? – Bart123

+0

und wil die Klasse in Modul1 gefunden werden oder neue Klasse erstellen? Wenn ja, wie verbinde ich die Klasse mit dem Modul, ich weiß, wie man es in C++ tut, aber idk wie in VB – Bart123

+0

Wie mache ich das Ergebnis der Berechnung dann verwenden Sie die Klasse zu runden? – Bart123