Messwert¶
Die Klassen \Alvine\Measure\Amount
stellt die zentrale Klasse
für den Umgang mit Werten da.
in dem ersten Beispiel soll die Messung einer Länge abgebildet werden.
Es werden 24 Meter gemessen und in dem Wert \Alvine\Measure\Amount
mit der Einheit Meter gespeichert.
$amount=\Alvine\Measure\Amount::valueOf(24, \Alvine\Measure\SI::METER());
echo (string) $amount;
// -> 24 m
Wie man hier sieht, kann eine Instanz nicht über einen Konstruktor erstellt werden.
Eine neues Objekt muss über die Methode \Alvine\Measure\Amount::getValue()
erstellt
werden.
Messwert können exakte Werte oder Näherungswerte enthalten. Mit der Methode
\Alvine\Measure\Amount::isExact()
lässt sich prüfen, ob ein Messwert exakt ist.
Über die Methode \Alvine\Measure\Amount::getExactValue()
lässt sich der
exakte Wert - ein Integer - abfragen.
Speichert man Float-Werte, so ergibt sich immer eine Ungenauigkeit. Diese
liegt im Bereich pow(2, -53)
. Bei ungenauen Werten erfolgt die
Abfrage des Wertes über \Alvine\Measure\Amount::getEstimatedValue()
.
Wird ein exaktes Messergebnis mit \Alvine\Measure\Amount::getEstimatedValue()
abgefragt, so wird der Wert von \Alvine\Measure\Amount::getExactValue()
zurückgegeben.
Über die beiden Methoden \Alvine\Measure\Amount::getMinimumValue()
und
\Alvine\Measure\Amount::getMaximumValue()
lässt sich die Abweichung abfragen.
Der absolute und der relative Fehler lässt sich über die
Methode \Alvine\Measure\Amount::getAbsoluteError()
und
\Alvine\Measure\Amount::getRelativeError()
anfordern.
Über die Methode \Alvine\Measure\Amount::to()
lassen sich Einheiten umrechnen.