Messwert

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

::uml::

skinparam monochrome true skinparam shadowing false

class \Alvine\Measure\Amount implements \Alvine\Measure\Measurable class \Alvine\Measure\Amount extends \Alvine\Core\Alvine

interface \Alvine\Measure\Measurable

::end-uml::

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.