2017-03-14 5 views
0

Ich habe eine Third-Party-Bibliothek, die Werte aus Laborwaagen lesen. Diese Bibliothek Schnittstelle viele Modelle, jedes mit seiner eigenen Präzision. Was ich in meiner C++ - Anwendung (die diese Bibliothek verwendet) tun muss, ist, den Gewichtswert aus der Skala (Doppelformat) zu lesen und unter Berücksichtigung der Skalierungsgenauigkeit auszudrucken (so dass der Benutzer diesen Wert liest, den Informationen zur Maßstabsgenauigkeit).Drucken Sie ein Doppel mit seiner Genauigkeit

So, eine Skala mit 2 Nachkommastellen genau verbindet, die Ausgabe zum Beispiel sein soll: 23,45 g Stattdessen eine Skala mit 4 Dezimalstellen Genauigkeit verbinden, sollte die Ausgabe zum Beispiel sein: 23,4567 g

Tatsache ist, Ich kenne die Skalierungsgenauigkeit nicht aus der Bibliothek. Die Funktion sieht wie folgt aus:

1.345999999999999 

statt:

1.346 

Ist

double value = scale.Weight(); 

Wenn ich den doppelten Wert, drucken Sie nur die Ausgabe in Form sein könnte gibt es eine Möglichkeit, die doppelte Präzision zu verstehen, so dass die Ausgabe das Gewicht mit der Maßstabsgenauigkeit anzeigt?

EDIT: Maßstabsgenauigkeit geht von 0 bis 6 Dezimalstellen.

+0

ahhh ... müssen Sie die Präzision aus dem Wert bekommen ?! sorry, ich habe deine Frage missverstanden ... – user1810087

+0

@ user1810087: richtig, sorry für meine Erklärung/Englisch lang. – ABCplus

+0

Bitte bearbeiten Sie Ihre Frage, um klarer zu machen, was Sie wirklich tun müssen - es ist nicht offensichtlich, wie es aussieht. –

Antwort

1

Nein. Diese Information sollte innerhalb scale Klasse wie double Typ hat "feste" Präzision und Sie können es nicht ändern. Auch die Präzision und Druckgenauigkeit sind zwei verschiedene Dinge. Sie können einen Typ verwenden, der unendlich genau ist, aber immer 2 Ziffern nach dem Punkt usw. zeigt. Wenn scale keine Präzisionsinformationen haben, können Sie eine Hilfsklasse und eine harte Code-Genauigkeit darin eingeben und dann mit einer Eigenschaft oder einem Typ von scale korrelieren.

Verwandte Themen