Messwert

Die Klassen \Alvine\Measure\Amount stellt die zentrale Klasse für den Umgang mit Werten da.

uml diagram

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.