Floats and Doubles
Floats are numeric values that can have decimal precision such as 2.3, 4.55, and -204.808. Doubles have twice the decimal precision than floats. Floats and doubles are defined with the float and double keywords respectively.
float f; float weight; double d; double milligrams; f=2.3; d=3.3/4.4;
During assignment, values must have at least one number to the left of the decimal place.
/* does not work */ float f = .1; double d = .5; /* must use */ float f = 0.1; double d = 0.5;
When assigning mathematical expressions to a float or a double, rounding might occur. This happens if none of the numbers have at least one number to the right of the decimal place.
float f = 4/3; /* f = 1.000 */ float f = 4.0/3; /* f = 1.333... */ double d = 4/3; /* d = 1.000 */ double d = 4.0/3; /* d = 1.333... */
Integers can be assigned to a float or double variable with no real change.
float f = 3; /* f = 3.0000 */ double d = 4; /* d = 4.0000 */
Gel will attempt to convert strings if assigned to a float or double. If conversion is not possible, then the assigned value is 0.
float f = "3.4"; /* f = 3.4 */ float f = "hello"; /* f = 0.0 */
If the string contains a number as a prefix, the number will be stored while the rest of the string will be ignored. The same is NOT true if the number is at the end of the string.
float f = "3 pigs"; /* f = 3.0 */ float f = "3.5 pigs"; /* f = 3.5 */ float f = "run 4"; /* f = 0 */