Krug.NumberUtil (Krug v0.1.0) View Source

Utilitary safe module for some numeric (non Math) operations/transformations.

Link to this section Summary

Functions

Verify if a value received is a valid number. If is valid return the value received passing by toInteger() or toFloat. Otherwise return the valueIfEmptyOrNull parameter value.

Verify if a value received is a valid number and is >= min and <= max.

Return if a value cannot be converted to a number.

Return the max integer value.

Return a float value if a value received can be converted to a number. Otherwise return 0.

Applies toFloat() to a received value, then format whit decimals decimal digits, using , (default) or ..

Return an integer value if a value received can be converted to a number. Otherwise return 0.

Convert any number or string that could be converted in a number to a positive float number.

Link to this section Functions

Link to this function

coalesce(value, valueIfEmptyOrNull, zeroAsEmpty \\ false)

View Source

Verify if a value received is a valid number. If is valid return the value received passing by toInteger() or toFloat. Otherwise return the valueIfEmptyOrNull parameter value.

Useful to forces a default value, to validations for example.

Examples

iex > Krug.NumberUtil.coalesce(nil,1)
1
iex > Krug.NumberUtil.coalesce("",1)
1
iex > Krug.NumberUtil.coalesce(" ",1)
1
iex > Krug.NumberUtil.coalesce("1-1",1)
1
iex > Krug.NumberUtil.coalesce("1A",1)
1
iex > Krug.NumberUtil.coalesce(0,1)
0
iex > Krug.NumberUtil.coalesce(0,1,true)
1
iex > Krug.NumberUtil.coalesce("0",1,true)
1
iex > Krug.NumberUtil.coalesce(2,1)
2
iex > Krug.NumberUtil.coalesce("2",1)
2
iex > Krug.NumberUtil.coalesce("1.2,4",1)
12.4
iex > Krug.NumberUtil.coalesce("1,2,4",1)
12.4
iex > Krug.NumberUtil.coalesce("-1,2.4",1)
-12.4
Link to this function

coalesceInterval(value, min, max)

View Source

Verify if a value received is a valid number and is >= min and <= max.

If the value received not is a valid number return 0.

If the min or max parameter value not is a valid number return the value received.

If value < min return min.

If value > max return max.

Examples

iex > Krug.NumberUtil.coalesceInterval(nil,"10","20")
0
iex > Krug.NumberUtil.coalesceInterval("",10,"20")
0
iex > Krug.NumberUtil.coalesceInterval("1-1",10,20)
0
iex > Krug.NumberUtil.coalesceInterval("1A",10,20)
0
iex > Krug.NumberUtil.coalesceInterval("101","10",nil)
101
iex > Krug.NumberUtil.coalesceInterval("101","1A",20)
101
iex > Krug.NumberUtil.coalesceInterval(101,10,20)
20
iex > Krug.NumberUtil.coalesceInterval("5.5","10",20)
10
iex > Krug.NumberUtil.coalesceInterval("15.5",10,20)
15.5

Return if a value cannot be converted to a number.

Example

iex > Krug.NumberUtil.isNan(10)
false
iex > Krug.NumberUtil.isNan("10")
false
iex > Krug.NumberUtil.isNan("-1.0")
false
iex > Krug.NumberUtil.isNan("-1,0")
false
iex > Krug.NumberUtil.isNan("10A")
true
iex > Krug.NumberUtil.isNan("-1-1")
true
iex > Krug.NumberUtil.isNan("1-1")
true
iex > Krug.NumberUtil.isNan(".5")
true
iex > Krug.NumberUtil.isNan("-.5")
true
iex > Krug.NumberUtil.isNan(",5")
true
iex > Krug.NumberUtil.isNan("-,5")
true

Return the max integer value.

Useful for validations for database int(11) columns for example.

Example

iex > Krug.NumberUtil.maxInteger()
4294967295

Return a float value if a value received can be converted to a number. Otherwise return 0.

Examples

iex > Krug.NumberUtil.toFloat(nil)
0.0
iex > Krug.NumberUtil.toFloat("")
0.0
iex > Krug.NumberUtil.toFloat("1,,2")
0.0
iex > Krug.NumberUtil.toFloat("1-2")
0.0
iex > Krug.NumberUtil.toFloat("-1..2")
0.0
iex > Krug.NumberUtil.toFloat("1A")
0.0
iex > Krug.NumberUtil.toFloat(-1.2)
-1.2
iex > Krug.NumberUtil.toFloat("-1.2")
-1.2
iex > Krug.NumberUtil.toFloat("-1,2")
-1.2
iex > Krug.NumberUtil.toFloat("1.2")
1.2
iex > Krug.NumberUtil.toFloat("1,2")
1.2
iex > Krug.NumberUtil.toFloat("1.2,4")
12.4
iex > Krug.NumberUtil.toFloat("1,2,4")
12.4
iex > Krug.NumberUtil.toFloat("-1,2.4")
-12.4
Link to this function

toFloatFormat(number, decimals, commaAsDecimalSeparator \\ true)

View Source

Applies toFloat() to a received value, then format whit decimals decimal digits, using , (default) or ..

Examples

iex > Krug.NumberUtil.toFloatFormat(nil,2)
0,00
iex > Krug.NumberUtil.toFloatFormat("1A",2)
0,00
iex > Krug.NumberUtil.toFloatFormat("1,2",2)
1,20
iex > Krug.NumberUtil.toFloatFormat("1,2",5)
1,20000
iex > Krug.NumberUtil.toFloatFormat(nil,2,false)
0.00
iex > Krug.NumberUtil.toFloatFormat("1A",2,false)
0.00
iex > Krug.NumberUtil.toFloatFormat("1,2",2,false)
1.20
iex > Krug.NumberUtil.toFloatFormat("1,2",5,false)
1.20000

Return an integer value if a value received can be converted to a number. Otherwise return 0.

Examples

iex > Krug.NumberUtil.toInteger(nil)
0
iex > Krug.NumberUtil.toInteger("")
0
iex > Krug.NumberUtil.toInteger("1,,2")
0
iex > Krug.NumberUtil.toInteger("1-2")
0
iex > Krug.NumberUtil.toInteger("-1..2")
0
iex > Krug.NumberUtil.toInteger("1A")
0
iex > Krug.NumberUtil.toInteger(-1.2)
-1
iex > Krug.NumberUtil.toInteger("-1.2")
-1
iex > Krug.NumberUtil.toInteger("-1,2")
-1
iex > Krug.NumberUtil.toInteger("1.2")
1
iex > Krug.NumberUtil.toInteger("1,2")
1

Convert any number or string that could be converted in a number to a positive float number.

If the number received its not a number/cannot be converted to one, then return 0.0.

Examples

iex > Krug.NumberUtil.toPositive(-10)
10
iex > Krug.NumberUtil.toPositive("-10,5")
10.5
iex > Krug.NumberUtil.toPositive("-10.5")
10.5
iex > Krug.NumberUtil.toPositive("-10,5A")
0.0
iex > Krug.NumberUtil.toPositive("-1-0,5")
0.0
iex > Krug.NumberUtil.toPositive("1-0,5")
0.0
iex > Krug.NumberUtil.toPositive("1.0.5")
10.5
iex > Krug.NumberUtil.toPositive("1,0,5")
10.5
iex > Krug.NumberUtil.toPositive("1.0,5")
10.5
iex > Krug.NumberUtil.toPositive("1,0.5")
10.5
iex > Krug.NumberUtil.toPositive("-1,0,5")
10.5