printOn method
Prints the object
into buffer
.
Implementation
@override
void printOn(T object, StringBuffer buffer) {
final value = object.toDouble();
if (value.isInfinite || value.isNaN) {
_unit.printOn(value, buffer);
} else {
final index = _getExponent(value) + unitOffset;
final unitIndex = index.clamp(0, units.length - 1);
final unitString = units[unitIndex];
final unitExponent = unitIndex - unitOffset;
final mantissa = value / unitBase.toDouble().pow(unitExponent);
if (unitString.isNotEmpty && unitPrefix) {
buffer.write(unitString);
buffer.write(unitSeparator);
}
final printer = unitIndex == unitOffset ? _unit : _scaled;
printer.printOn(mantissa, buffer);
if (unitString.isNotEmpty && !unitPrefix) {
buffer.write(unitSeparator);
buffer.write(unitString);
}
}
}