Note: information on this page refers to Ceylon 1.0, not to the current release.
Float literals
A literal notation for a Float
value.
Usage
A Float literal can be written in a variety of ways:
variable Float one = 1.0;
one = 1.0000;
variable Float oneMillion = 1000000.0;
oneMillion = 1_000_000.0;
oneMillion = 1.0M;
oneMillion = 1.0e6;
oneMillion = 1.0E+6;
variable Float half = 0.5;
half = 5.0E-1;
half = 5.0e-1;
half = 500m;
half = 500.0m;
Description
Decimal point
Float literals almost always contain a decimal point, ., which:
- separates the fractional part from the whole number part, and
- syntactically distinguishes a
Floatliteral from anIntegerliteral.
The exception to this rule is any Float literal with a one of the
"fractional" magnitude suffices (m, u, n, p, f).
Decimal magnitude suffices
A Float literal may be written with a magnitude, a whole magnitude:
-
k(kilo), 103 -
M(mega), 106 -
G(giga), 109 -
T(tera), 1012 -
P(peta), 1015
Or a fractional magnitude:
-
m(milli), 10-3 -
u(micro), 10-6 (strictly this should be mu (μ), but that would be too hard to type on most keyboards) -
n(nano), 10-9 -
p(pico), 10-12 -
f(femto), 10-15
For example:
Float million = 1.0M;
Float millionth = 1u;
Grouping digits
An underscore, _, may be used to separate groups of three digits in the
integer or fractional part of the literal.
Float million = 1_000_000.0;
Float millionth = 0.000_000_1;
Exponential notation
Exponential notation is supported using e or E to separate the mantissa
(before the E) from the scale (after the E).
Float million = 2.0e6;
Float millionth = 2.0e-6;
As a primary
Invoking members of the class Float directly on a literal is permitted:
Float minusOneHalf = 0.5.negativeValue;
See also
- Numeric literals in the Tour of Ceylon
- Numeric literals in the language specification