Siebel eScript Language Reference > Siebel eScript Language Overview > Data Types in Siebel eScript >
Numbers in Siebel eScript
This topic describes the various notations for numeric literals. NOTE: The notations provided in this section are not data types and should not be used as data types in declarations for strongly typed variables.
NOTE: Numbers that contain characters other than a decimal point, except in hexadecimal and scientific notation, are treated as string values in eScript. For example, eScript treats the number 100,000 (notice the comma) as a string.
Integer
Integers are positive and negative whole numbers and zero. Integer constants and literals can be expressed in decimal, hexadecimal, or octal notation. Decimal constants and literals are expressed by using the decimal representation. See the following two sections to learn how to express hexadecimal and octal integers. NOTE: A variable cannot be strongly typed as an integer. You can use the primitive type float, and its value can be used as an integer.
Hexadecimal
Hexadecimal notation uses base16 digits from the sets of 09 and AF or af. These digits are preceded by 0x. Case sensitivity does not apply to hexadecimal notation in Siebel eScript. Examples are: 0x1, 0x01, 0x100, 0x1F, 0x1f, 0xABCD var a = 0x1b2E;
The decimal equivalents are: 1, 1, 256, 31, 31, 43981 var a = 6958
Octal
Octal notation uses base8 digits from the set of 07. These digits are preceded by a zero. Examples are: 00, 05, 077 var a = 0143;
The decimal equivalents are: 0, 5, 63 var a = 99
Floating Point
Floatingpoint numbers are numbers with fractional parts that are indicated by decimal notation, such as 10.33. NOTE: Floatingpoint numbers are often referred to as floats. Do not confuse the familiar connotation of float with the eScript float primitive data type.
CAUTION: The assignment of a floatingpoint number to a variable may cause a loss in precision due to a limit in memory for decimaltobinary conversion. Numbers that may be stored with a small precision error are decimal numbers that do not convert to a finite binary representation. For example, the statement var x = 142871.45 may result in x being stored as 142871.450000000001. These small precision errors will likely have little effect on precision of subsequent calculations, depending on their context. However, a number's representation may be unexpectedly too large for the field in which it displays, resulting in the error message "Value too long for field %1 (maximum size %2)."
To prevent floatingpoint precision errors, use the toFixed() Method at appropriate points in calculations or when assigning variable values. For example, use x.toFixed(2) in calculations instead of using variable x as declared above. Decimal
Decimal floats use the same digits as decimal integers but use a period to indicate a fractional part. Examples are: 0.32, 1.44, 99.44 var a = 100.55 + .45;
Scientific
Scientific notation is useful in expressing very large and very small numbers. It uses the decimal digits in conjunction with exponential notation, represented by e or E . Scientific notation is also referred to as exponential notation. Examples are: 4.087e2, 4.087E2, 4.087e+2, 4.087E2 var a = 5.321e31 + 9.333e2;
The decimal equivalents are: 408.7, 408.7, 408.7, 0.04087 var a = 53210000000000000000000000000000 + 0.09333
NaN
NaN means "not a number," and NaN is an abbreviation for the phrase. NaN is not a data type, but is instead a value. However, NaN does not have a literal representation. To test for NaN, the function, isNaN(), must be used, as illustrated in the following fragment: var Test = "a string"; if (isNaN(parseInt(Test))) TheApplication().RaiseErrorText("Test is Not a Number");
When the parseInt() function tries to parse the string "a string" into an integer, it returns NaN, because "a string" does not represent a number as the string "22" does. Number Constants in Siebel eScript
Several numeric constants, as shown in Table 5, can be accessed as properties of the Number object, though they do not have a literal representation.
Table 5. Numeric Constants in Siebel eScript



Number.MAX_VALUE

1.7976931348623157e+308 
Largest number (positive) 
Number.MIN_VALUE

2.2250738585072014e308 
Smallest positive nonzero value 
Number.NaN

NaN 
Not a number 
Number.POSITIVE_INFINITY

Infinity 
Number greater than MAX_VALUE 
Number.NEGATIVE_INFINITY

Infinity 
Number less than MIN_VALUE 
