abstract struct Int
Overview
Int is the base type of all integer types.
There are four signed integer types: Int8, Int16, Int32 and Int64,
being able to represent numbers of 8, 16, 32 and 64 bits respectively.
There are four unsigned integer types: UInt8, UInt16, UInt32 and UInt64.
An integer literal is an optional + or - sign, followed by
a sequence of digits and underscores, optionally followed by a suffix.
If no suffix is present, the literal's type is Int32, or Int64 if the
number doesn't fit into an Int32:
1 # Int32
1_i8  # Int8
1_i16 # Int16
1_i32 # Int32
1_i64 # Int64
1_u8  # UInt8
1_u16 # UInt16
1_u32 # UInt32
1_u64 # UInt64
+10 # Int32
-20 # Int32
2147483648 # Int64Literals without a suffix that are larger than Int64::MAX represent a
UInt64 if the number fits, e.g. 9223372036854775808 and
0x80000000_00000000. This behavior is deprecated and will become an error in
the future.
The underscore _ before the suffix is optional.
Underscores can be used to make some numbers more readable:
1_000_000 # better than 1000000Binary numbers start with 0b:
0b1101 # == 13Octal numbers start with 0o:
0o123 # == 83Hexadecimal numbers start with 0x:
0xFE012D # == 16646445
0xfe012d # == 16646445See Integer literals in the language reference.
Included Modules
- Comparable(BigDecimal)
- Comparable(BigRational)
- Comparable(BigInt)
Defined in:
crystal_on_steroids/inflections.crcrystal_on_steroids/int.cr
Instance Method Summary
- 
        #multiple_of?(number)
        
          Check whether the integer is evenly divisible by the argument. 
- 
        #ordinal
        
          Returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. 
- 
        #ordinalize
        
          Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. 
Instance methods inherited from struct Number
  
  
    
      blank?
    blank?, 
    
  
    
      byte(*args)
    byte, 
    
  
    
      bytes
    bytes, 
    
  
    
      exabyte(*args)
    exabyte, 
    
  
    
      exabytes
    exabytes, 
    
  
    
      gigabyte(*args)
    gigabyte, 
    
  
    
      gigabytes
    gigabytes, 
    
  
    
      kilobyte(*args)
    kilobyte, 
    
  
    
      kilobytes
    kilobytes, 
    
  
    
      megabyte(*args)
    megabyte, 
    
  
    
      megabytes
    megabytes, 
    
  
    
      petabyte(*args)
    petabyte, 
    
  
    
      petabytes
    petabytes, 
    
  
    
      terabyte(*args)
    terabyte, 
    
  
    
      terabytes
    terabytes
    
  
    
    
  
    
    
    
  
    
    
    
  
    
    
    
  
    
    
    
  
    
    
    
  
    
  Instance methods inherited from class Object
  
  
    
      in?(another_object)
    in?, 
    
  
    
      presence
    presence, 
    
  
    
      presence_in(another_object)
    presence_in, 
    
  
    
      present?
    present?, 
    
  
    
      to_param
    to_param, 
    
  
    
      to_query(namespace)to_query to_query
Class methods inherited from class Object
  
  
    
      ❨╯°□°❩╯︵┻━┻
    ❨╯°□°❩╯︵┻━┻
    
  
  
Instance Method Detail
Check whether the integer is evenly divisible by the argument.
  0.multiple_of?(0)  # => true
  6.multiple_of?(5)  # => false
  10.multiple_of?(2) # => trueReturns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
  1.ordinal     # => "st"
  2.ordinal     # => "nd"
  1002.ordinal  # => "nd"
  1003.ordinal  # => "rd"
  -11.ordinal   # => "th"
  -1021.ordinal # => "st"Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
  1.ordinalize     # => "1st"
  2.ordinalize     # => "2nd"
  1002.ordinalize  # => "1002nd"
  1003.ordinalize  # => "1003rd"
  -11.ordinalize   # => "-11th"
  -1021.ordinalize # => "-1021st"