🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
In Kotlin, the Number class is an abstract class that serves as the superclass for all numeric types, including Byte, Short, Int, Long, Float, and Double. It provides a common interface for numeric operations and type conversions. The Number class itself cannot be instantiated, but it provides useful methods that are inherited by its subclasses.
Table of Contents
- What is the
NumberClass? - Numeric Types in Kotlin
- Common Methods of
NumberClass - Examples of
Number - Real-World Use Case
- Conclusion
1. What is the Number Class?
The Number class in Kotlin is an abstract class that provides a common interface for numeric types. It defines methods for converting the numeric value to different primitive types.
Syntax
abstract class Number {
abstract fun toByte(): Byte
abstract fun toShort(): Short
abstract fun toInt(): Int
abstract fun toLong(): Long
abstract fun toFloat(): Float
abstract fun toDouble(): Double
}
2. Numeric Types in Kotlin
Kotlin provides several numeric types that inherit from the Number class:
ByteShortIntLongFloatDouble
Each of these types provides specific methods and properties for handling numerical values.
Example
val myByte: Byte = 1
val myShort: Short = 1
val myInt: Int = 1
val myLong: Long = 1L
val myFloat: Float = 1.0f
val myDouble: Double = 1.0
3. Common Methods of Number Class
The Number class provides several methods for converting numeric values to different types. These methods are abstract and must be implemented by the subclasses.
Methods
toByte(): Converts the value to aByte.toShort(): Converts the value to aShort.toInt(): Converts the value to anInt.toLong(): Converts the value to aLong.toFloat(): Converts the value to aFloat.toDouble(): Converts the value to aDouble.
Example
fun main() {
val myNumber: Number = 42
println("toByte: ${myNumber.toByte()}")
println("toShort: ${myNumber.toShort()}")
println("toInt: ${myNumber.toInt()}")
println("toLong: ${myNumber.toLong()}")
println("toFloat: ${myNumber.toFloat()}")
println("toDouble: ${myNumber.toDouble()}")
}
4. Examples of Number
Example 1: Using Number with Type Conversions
This example demonstrates converting a numeric value to different types using the methods provided by the Number class.
fun main() {
val number: Number = 12345.6789
val byteValue: Byte = number.toByte()
val shortValue: Short = number.toShort()
val intValue: Int = number.toInt()
val longValue: Long = number.toLong()
val floatValue: Float = number.toFloat()
val doubleValue: Double = number.toDouble()
println("Byte value: $byteValue")
println("Short value: $shortValue")
println("Int value: $intValue")
println("Long value: $longValue")
println("Float value: $floatValue")
println("Double value: $doubleValue")
}
Output:
Byte value: 57
Short value: 12345
Int value: 12345
Long value: 12345
Float value: 12345.679
Double value: 12345.6789
Explanation:
This example shows how to convert a Number to various numeric types using the toByte, toShort, toInt, toLong, toFloat, and toDouble methods.
Example 2: Handling Different Numeric Types
This example demonstrates handling different numeric types and performing arithmetic operations.
fun performOperations(a: Number, b: Number) {
println("Addition: ${a.toDouble() + b.toDouble()}")
println("Subtraction: ${a.toDouble() - b.toDouble()}")
println("Multiplication: ${a.toDouble() * b.toDouble()}")
println("Division: ${a.toDouble() / b.toDouble()}")
}
fun main() {
val intVal: Int = 10
val doubleVal: Double = 5.5
performOperations(intVal, doubleVal)
}
Output:
Addition: 15.5
Subtraction: 4.5
Multiplication: 55.0
Division: 1.8181818181818181
Explanation:
This example demonstrates performing arithmetic operations on different numeric types by converting them to Double using the toDouble method.
Example 3: Using Number in Collections
This example demonstrates using Number in a collection to handle different numeric types.
fun main() {
val numbers: List<Number> = listOf(1, 2.5, 3L, 4.5f)
for (number in numbers) {
println("Number: $number, as Int: ${number.toInt()}, as Double: ${number.toDouble()}")
}
}
Output:
Number: 1, as Int: 1, as Double: 1.0
Number: 2.5, as Int: 2, as Double: 2.5
Number: 3, as Int: 3, as Double: 3.0
Number: 4.5, as Int: 4, as Double: 4.5
Explanation:
This example shows how to use Number in a collection to handle different numeric types and convert them to Int and Double.
5. Real-World Use Case: Calculating Average
In a real-world scenario, you might need to calculate the average of a list of numbers, which could be of different numeric types.
Example: Calculating Average
fun calculateAverage(numbers: List<Number>): Double {
val sum = numbers.sumOf { it.toDouble() }
return sum / numbers.size
}
fun main() {
val numbers: List<Number> = listOf(10, 20.5, 30L, 40.0f)
val average = calculateAverage(numbers)
println("Average: $average")
}
Output:
Average: 25.125
Explanation:
This example calculates the average of a list of numbers by converting each number to Double and summing them up, then dividing by the number of elements.
Conclusion
The Number class in Kotlin provides a common interface for numeric types and useful methods for converting values to different numeric types. Understanding how to use the Number class and its functions is essential for effective Kotlin programming, especially when dealing with different numeric types and performing arithmetic operations.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment