 Print
 DarkLight
Numbers are used for all kinds of calculations. There are literal numbers, like 7 or 1.5, but a component or variable can also be of type number. Both kinds can be used interchangeably and everything described on this page applies to either kind.
For example, you can call a function like round() on a component: price.round() or on a literal number: 13.5.round().
Operations
The following arithmetic operations are available in Hive (the examples assume that there is a component price with a value of 5.
name  example  result  description 
negate  price  5  gets the inverse of a number 
add  price + 2  7  adds two numbers 
substract  2  price  3  subtracts one number from another 
multiply  2 * price  10  multiplies two numbers 
divide  2 / price  2.5  divides one number by another 
exponentiation  price ^ 2  25  raises a number to the power of another number 
modulo  price mod 2  1  divides one number by another and returns the remainder 
Comparing numbers
In addition to the above, there are also six operators for comparing numbers.
name  example  result  description 
greater than  price > 5  false  returns true if the first number is greater than the second 
greater than or equal  price >=  true  returns true if the first number is greater than or equal to the second 
less than  4 < price  true  returns true if the first number is less than the second 
less than or equal  4 <= price  false  returns true if the first number is less than or equal to the second 
equal to  price = 5  true  returns true if one number is equal to another 
not equal to  price <> 19  true  returns true if one number is not equal to another 
Functions
name  description 
rounds a number to the nearest integer or to the specified number of fractional digits  
gets the largest integer less than or equal to the specified number  
gets the smallest integer greater than or equal to the specified number  
calculates the integral part of a number  
gets a number that is greater than or equal to the specified threshold  
gets a number that is less than or equal to the specified threshold  
converts a number to text 
For additional mathematical functions check out the article about the math type.
round
Rounds a number to the specified number of fractional digits, away from zero.
If no parameter is used, or the number of digits is zero, rounds to the nearest integer.
example  result 
price.round()  4 
price.round(1)  4.4 
price.round(2)  4.45 
If you specify a negative number of digits, its positive inverse will be used, i.e. round(2) is the same as round(2)
floor
Returns the largest integer that is less than or equal to the specified number.
example  result 
1.1.floor()  1 
1.9.floor()  1 
(1.1).floor()  2 
ceiling
Returns the smallest integer that is greater than or equal to the specified number.
example  result 
1.1.ceiling()  1 
1.3.ceiling()  2 
(1.1).ceiling()  1 
truncate
Calculates the integral part of a number by rounding it to the nearest integer towards zero.
example  result 
1.1.truncate()  1 
1.9.truncate()  1 
(1.9).truncate()  1 
atLeast(min)
Compares a number to a specified threshold and returns it if it is greater than or equal to the threshold, otherwise returns the threshold.
example  result 
5.atLeast(10)  10 
5.atLeast(3)  5 
atMost(max)
Compares a number to a specified threshold and returns it if it is less than or equal to the threshold, otherwise returns the threshold.
example  result 
5.atMost(2)  2 
5.atMost(10)  5 
toText(format,locale)
Converts a number to text. You can optionally customize the conversion with the format parameter and specify the desired locale.
example  result 








You may use a combination of the following characters to customize the conversion of numbers to text.
zero placeholder (0)
Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result text.
123.456.toText("0000") becomes 0123
123.toText("000.00") becomes 123.00
digit placeholder (#)
Replaces the hash sign with the corresponding digit if one is present; otherwise, no digit appears in the result text.
123.456.toText("####") becomes 123
123.toText("###.##") becomes 123
decimal placeholder (.)
Determines the location of the decimal separator in the result text.
0.1234.toText("0.00") becomes 0.12
group separator placeholder (,)
Inserts a localized group separator between each number group in the integral part of the output.
12345678.toText("##,#") becomes 12,345,678
percentage placeholder (%)
Multiplies a number by 100 and inserts a percentage symbol in the result text.
0.35.toText("0%") becomes 35%
section separator (;)
Defines sections with separate format strings for positive, negative and zero numbers.
(13.37).toText("##.##;(##.##)") becomes (13.37)
Other characters
All characters that have not been mentioned above will simply be copied to the result text:
24.toText("0 degrees") becomes 24 degrees
In order to use placeholder characters literally, you can precede them with a backslash:
13.37.toText("\# 00.0") becomes # 13.4
You can also use single quotes ' or double quotes " to enclose literal text that should be copied to the result:
13.37.toText("00.0'% of total'") becomes 13.4% of total
Rounding
If the formatted value contains more significant digits than are present in the format text, the value will be rounded to the nearest digit and away from zero.
10.5.toText("#") becomes 11
0.25.toText("0.0") becomes 0.3