Contents

UNITS - Convert between units

A module that can be used to convert between various units, e.g. kg to g.

Synopsis

verbatim scm,8

 > (require (planet "units.scm" ("oesterholt"  "ho-utils.plt"  1 0)))
 > (define a 100)
 > (unit-convert a 'kg 'g)
 100000
 > (unit-convert a 'g 'kg)
 1/10

 > (require (planet "units.scm" ("oesterholt"  "ho-utils.plt"  1 0)))
 > (define a 100)
 > (unit-convert a 'kg 'g)
 100000
 > (unit-convert a 'kg 'g)
 100000
 > (unit-convert a 'l '(dl cl ml) 100)
 dl
 1000
 > (unit-convert a 'l '(dl cl ml) 10000)
 cl
 10000
 > (unit-convert a 'l '(dl cl ml) 10001)
 ml
 100000
 > (unit-convert a 'l '(dl cl ml))
 dl
 1000
 >

 > (unit-convert->string a 'l '(dl cl ml))
 "1000dl"
 > (unit-convert->string a 'l '(dl cl ml) 10000)
 "10000cl"
 >

 > (define a 123.0)
 > (unit-convert->string a 'ml '(dl cl ml))
 "1.23dl"
 >

 > (define a 1235.2342)
 > (unit-convert->rounded->string a 'ml '(dl cl ml) 3)
 "12.352dl"
 > (unit-convert->rounded->string a 'ml '(dl cl ml) 2)
 "12.35dl"
 > (unit-convert->rounded->string a 'ml '(dl cl ml) 1)
 "12.4dl"
 > (unit-convert->rounded->string a 'ml '(dl cl ml) 1 15)
 "123.5cl"
 >

> (unit-convert->rounded->string a 'ml 'cl 3) "123.523cl"

API

(unit-convert A from-unit to-unit(s) . threshold) : number | (values symbol number)

Converts A from from-unit to to-unit or one of to-units. It targets for the minimal number, bigger then threshold (which defaults to 1 if not given). to-units is a list of units.

Returns the converted A, if to-unit is only one unit. Returns the unit A is converted to and the converted A, if to-units is a list of units.

(unit-convert->string A from-unit to-unit(s) . threshold) : string

Calls unit-convert and makes a string of the result of unit-convert. See synopsis for more info.

(unit-convert->rounded->string A from-unit to-unit(s) decimals . threshold) : string

Calls unit-convert, rounds the result to decimals decimals and makes a string of the result, like unit-convert->string does.

Supported Units

Currently supported unit conversions.

 | computermemory | b (byte), kb (kilobyte), mb (megabyte), gb (gigabyte), tb (terabyte)
 | time           | w (week), d (day), h (hour), m (minute), s (second), ms (millisecond), mus (microsecond), ns (nanosecond)
 | mass           | g (gram), kg (kilogram)
 | distance       | m (meter), dm (decimeter), cm (centimeter), mm (millimeter), km (kilometer)
 | contents       | l (liter), dl (deciliter), cl (centiliter), ml (milliliter)

Info

(c) 2005 Hans Oesterholt-Dijkema. Distributed undef LGPL. Contact: send email to hans in domain elemental-programming.org. Homepage: http://www.elemental-programming.org.