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.