reduce-magnitude ( n multiplier base suffixes -- string )


Vocabulary
units.reduction

Definition
USING: kernel locals math math.functions math.parser sequences
;

IN: units.reduction

:: reduce-magnitude
( n multiplier base suffixes -- string )
n 0 < [
n neg multiplier base suffixes reduce-magnitude
"-" prepend
] [
suffixes n multiplier base find-unit-suffix
:> i n multiplier i * base swap ^ /i
number>string i suffixes nth append
] if ;