summaryrefslogtreecommitdiff
path: root/si.go
diff options
context:
space:
mode:
Diffstat (limited to 'si.go')
-rw-r--r--si.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/si.go b/si.go
index b24e481..ae659e0 100644
--- a/si.go
+++ b/si.go
@@ -93,6 +93,16 @@ func SI(input float64, unit string) string {
return Ftoa(value) + " " + prefix + unit
}
+// SIWithDigits works like SI but limits the resulting string to the
+// given number of decimal places.
+//
+// e.g. SIWithDigits(1000000, 0, "B") -> 1 MB
+// e.g. SIWithDigits(2.2345e-12, 2, "F") -> 2.23 pF
+func SIWithDigits(input float64, decimals int, unit string) string {
+ value, prefix := ComputeSI(input)
+ return FtoaWithDigits(value, decimals) + " " + prefix + unit
+}
+
var errInvalid = errors.New("invalid input")
// ParseSI parses an SI string back into the number and unit.