int abstract class
Representation of Dart integers containing integer specific operations and specialization of operations inherited from num.
Integers can be arbitrarily large in Dart.
Note however, that when compiling to JavaScript, integers are implemented as JavaScript numbers. When compiling to JavaScript, integers are therefore restricted to 53 significant bits because all JavaScript numbers are double-precision floating point values. The behavior of the operators and methods in the int class therefore sometimes differs between the Dart VM and Dart code compiled to JavaScript.
abstract class int extends num {
/** The bit-wise and operator. */
int operator &(int other);
/** The bit-wise or operator. */
int operator |(int other);
/** The bit-wise xor operator. */
int operator ^(int other);
/** The bit-wise negate operator. */
int operator ~();
/** The left shift operator. */
int operator <<(int shiftAmount);
/** The right shift operator. */
int operator >>(int shiftAmount);
/** Returns true if and only if this integer is even. */
bool get isEven;
/** Returns true if and only if this integer is odd. */
bool get isOdd;
/** Negate operator. Negating an integer produces an integer. */
int operator -();
/** Returns the absolute value of this integer. */
int abs();
/** Returns `this`. */
int round();
/** Returns `this`. */
int floor();
/** Returns [this]. */
int ceil();
/** Returns [this]. */
int truncate();
/** Returns `this.toDouble()`. */
double roundToDouble();
/** Returns `this.toDouble()`. */
double floorToDouble();
/** Returns `this.toDouble()`. */
double ceilToDouble();
/** Returns `this.toDouble()`. */
double truncateToDouble();
/**
* Returns a representation of this [int] value.
*
* It should always be the case that if [:i:] is an [int] value,
* then [:i == int.parse(i.toString()):].
*/
String toString();
/**
* Converts [this] to a string representation in the given [radix].
*
* In the string representation, lower-case letters are used for digits above
* '9'.
*
* The [radix] argument must be an integer in the range 2 to 36.
*/
String toRadixString(int radix);
/**
* Parse [source] as an integer literal and return its value.
*
* The [radix] must be in the range 2..36. The digits used are
* first the decimal digits 0..9, and then the letters 'a'..'z'.
* Accepts capital letters as well.
*
* If no [radix] is given then it defaults to 16 if the string starts
* with "0x", "-0x" or "+0x" and 10 otherwise.
*
* The [source] must be a non-empty sequence of base-[radix] digits,
* optionally prefixed with a minus or plus sign ('-' or '+').
*
* It must always be the case for an int [:n:] and radix [:r:] that
* [:n == parseRadix(n.toRadixString(r), r):].
*
* If the [source] is not a valid integer literal, optionally prefixed by a
* sign, the [onError] is called with the [source] as argument, and its return
* value is used instead. If no [onError] is provided, a [FormatException]
* is thrown.
*/
external static int parse(String source,
{ int radix,
int onError(String source) });
}
Extends
num > int
Subclasses
Static Methods
int parse(String source, {int radix, int onError(String source)}) #
Parse source as an integer literal and return its value.
The radix must be in the range 2..36. The digits used are first the decimal digits 0..9, and then the letters 'a'..'z'. Accepts capital letters as well.
If no radix is given then it defaults to 16 if the string starts with "0x", "-0x" or "+0x" and 10 otherwise.
The source must be a non-empty sequence of base- radix digits, optionally prefixed with a minus or plus sign ('-' or '+').
It must always be the case for an int n and radix r that
n == parseRadix(n.toRadixString(r), r).
If the source is not a valid integer literal, optionally prefixed by a sign, the onError is called with the source as argument, and its return value is used instead. If no onError is provided, a FormatException is thrown.
external static int parse(String source,
{ int radix,
int onError(String source) });
Properties
Operators
abstract num operator %(num other) #
Euclidean modulo operator.
Returns the remainder of the euclidean division. The euclidean division of
two integers a and b yields two integers q and r such that
a = b*q + r and 0 <= r < |a|.
The euclidean division is only defined for integers, but can be easily
extended to work with doubles. In that case r may have a non-integer
value, but it still verifies 0 <= r < |a|.
The sign of the returned value r is always positive.
See remainder for the remainder of the truncating division.
Methods
abstract num clamp(num lowerLimit, num upperLimit) #
Clamps this to be in the range
lowerLimit-
upperLimit. The comparison
is done using compareTo and therefore takes -0.0 into account.
It also implies that double.NAN is treated as the maximal double value.
abstract int compareTo(T other) #
Compares this object to another Comparable
Returns a value like a Comparator when comparing this to
other.
May throw an ArgumentError if
other is of a type that
is not comparable to this.
abstract num remainder(num other) #
Return the remainder of the truncating division of this by
other.
The result r of this operation satisfies: this = this ~/ other + r.
As a consequence the remainder r has the same sign as the dividend
this.
abstract String toRadixString(int radix) #
Converts this to a string representation in the given
radix.
In the string representation, lower-case letters are used for digits above '9'.
The radix argument must be an integer in the range 2 to 36.
abstract String toStringAsExponential([int fractionDigits]) #
Converts this to a string in decimal exponential notation with
fractionDigits digits after the decimal point.
If
fractionDigits is given then it must be an integer satisfying:
0 <= fractionDigits <= 20. Without the parameter the returned string
uses the shortest number of digits that accurately represent this.
abstract String toStringAsFixed(int fractionDigits) #
Converts this to a string representation with
fractionDigits digits
after the decimal point.
The parameter
fractionDigits must be an integer satisfying:
0 <= fractionDigits <= 20.