ExKcal.Calc (ExKcal v0.0.6)
Provides functions to handle some of the operations related to weight manipulation on the ExKcal.Product
s.
Link to this section Summary
Types
Known SI prefixes.
Volume of substance and unit it is represented in.
Weight of substance and unit it is represented in.
Functions
Converts ExKcal.Units.weight() and ExKcal.Units.volume() type values to target prefix.
Link to this section Types
Link to this type
si_prefix()
Specs
si_prefix() :: :Y | :Z | :E | :P | :T | :G | :M | :k | :h | :da | :d | :c | :m | :μ | :n | :p | :f | :a | :z | :y
Known SI prefixes.
Link to this type
volume()
Specs
volume() :: {float(), :l | :dl | :ml} | {nil, :none}
Volume of substance and unit it is represented in.
Link to this type
weight()
Specs
weight() :: {float(), :kg | :g | :mg | :μg} | {nil, :none}
Weight of substance and unit it is represented in.
Link to this section Functions
Link to this function
adjust_by_weight(value, new_weight, current_weight \\ nil)
Link to this function
convert_si_prefix(arg, unit_to)
Specs
Converts ExKcal.Units.weight() and ExKcal.Units.volume() type values to target prefix.
Notes
Quirkiness of that function is already suggested by its name:
- it converts from prefix to prefix, not really from unit to unit. This means that only prefix is taken into account during the conversion. Because of that, conversion between volume and weight units will go through (see examples).
Examples
iex> import ExKcal.Calc
iex> convert_si_prefix({0.1, :mg}, :dl)
{0.001, :dl}
iex> convert_si_prefix({1002.0, :g}, :kg)
{1.002, :kg}
iex> convert_si_prefix({0.23, :dag}, :mg)
{2.3e3, :mg}