Kotlin Data Types

Defining Variable with Datatype

Data types are divided into different groups:
  • Numbers
  • Characters
  • Booleans
  • Strings
  • Arrays


Number types are divided into two groups:

Integer types store whole numbers, positive or negative (such as 123 or -456), without decimals. 
Valid types are Byte, Short, Int, and Long.
// Integer TYPES: Byte (8 bit), Short (16 bit), Int (32 bit), Long (64 bit)

Floating-point types represent numbers with a fractional part, containing one or more decimals. 
There are two types: Float and Double.
// Floating Point number Types: Float (32 bit), Double (64 bit)

The Byte data type can store whole numbers from -128 to 127. 
This can be used instead of Int or other integer types to save memory when you are certain that the value will be within -128 and 127
The Short data type can store whole numbers from -32768 to 32767
The Int data type can store whole numbers from -2147483648 to 2147483647
The Long data type can store whole numbers from -9223372036854775808 to 9223372036854775808. This is used when Int is not large enough to store the value. 
Optionally, you can end the value with an "L"

Floating Point Types
Floating-point types represent numbers with a decimal, such as 9.99 or 3.14515.
The Float data type can store fractional numbers from 3.4e−038 to 3.4e+038. Note that you should end the value with an "F"
The Double data type can store fractional numbers from 1.7e−308 to 1.7e+038


The Char data type is used to store a single character. A char value must be surrounded by single quotes, like 'A' or 'c':


The Boolean data type can only take the values true or false
// Booleans the type Boolean is used to represent logical values. 
// It can have two possible values true and false.


The String data type is used to store a sequence of characters (text). 
String values must be surrounded by double quotes


Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value.
To create an array, use the arrayOf() function, and place the values in a comma-separated list inside it

  • If you don't specify the type for a numeric variable, it is most often returned as Int for whole numbers and Double for floating-point numbers.
  • Use Float or Double? The precision of a floating-point value indicates how many digits the value can have after the decimal point. The precision of Float is only six or seven decimal digits, while Double variables have a precision of about 15 digits. Therefore it is safer to use Double for most calculations.
  • Unlike Java, you cannot use ASCII values to display certain characters. The value 66 would output a "B" in Java but will generate an error in Kotlin
val myNum: Int = 5                // Int
val myNum: Byte = 100 // Byte
val myNum: Short = 5000 // Short
val myNum: Int = 100000 // Int
val myNum: Long = 15000000000L // Long

val myNum: Float = 5.75F // Float
val myDoubleNum: Double = 5.99 // Double

val myLetter: Char = 'D' // Char

val myBoolean: Boolean = true // Boolean

val myText: String = "Hello" // String

val cars = arrayOf("BMW", "Ford", "Mazda") // Array
In Kotlin, the type of a variable is decided by its value:
val myNum = 5             // Int
val myDoubleNum = 5.99 // Double
val myLetter = 'D' // Char
val myBoolean = true // Boolean
val myText = "Hello" // String