Numbers
Dart numbers come in two flavors:
- int
- Integer values no larger than 64 bits,depending on the platform.On the Dart VM, values can be from-263 to 263 - 1.Dart that’s compiled to JavaScript usesJavaScript numbers,allowing values from -253 to 253 - 1.
- double
- 64-bit (double-precision) floating-point numbers, as specified bythe IEEE 754 standard.
Both int and double are subtypes of num.The num type includes basic operators such as +, -, /, and *,and is also where you’ll find abs(), ceil(),and floor(), among other methods.(Bitwise operators, such as >>, are defined in the int class.)If num and its subtypes don’t have what you’re looking for, thedart:math library might.
Integers are numbers without a decimal point. Here are some examples ofdefining integer literals:
1. var x = 1;
2. var hex = 0xDEADBEEF;
If a number includes a decimal, it is a double. Here are some examplesof defining double literals:
1. var y = 1.1;
2. var exponents = 1.42e5;
As of Dart 2.1, integer literals are automatically converted to doubleswhen necessary:
1. double z = 1; // Equivalent to double z = 1.0.
Version note: Before Dart 2.1, it was an error to use an integer literal in a double context.
Here’s how you turn a string into a number, or vice versa:
1. // String -> int
2. var one = int.parse('1');
3. assert(one == 1);
5. // String -> double
6. var onePointOne = double.parse('1.1');
7. assert(onePointOne == 1.1);
9. // int -> String
10. String oneAsString = 1.toString();
11. assert(oneAsString == '1');
13. // double -> String
14. String piAsString = 3.14159.toStringAsFixed(2);
15. assert(piAsString == '3.14');
The int type specifies the traditional bitwise shift (<<, >>), AND(&), and OR (|) operators. For example:
1. assert((3 << 1) == 6); // 0011 << 1 == 0110
2. assert((3 >> 1) == 1); // 0011 >> 1 == 0001
3. assert((3 | 4) == 7); // 0011 | 0100 == 0111
Literal numbers are compile-time constants.Many arithmetic expressions are also compile-time constants,as long as their operands arecompile-time constants that evaluate to numbers.
1. const msPerSecond = 1000;
2. const secondsUntilRetry = 5;
3. const msUntilRetry = secondsUntilRetry * msPerSecond;
