Kotlin - String을 Float으로 변환

코틀린에서 String을 Float으로 변환하는 방법을 소개합니다.

String.toFloat()

String.toFloat()는 문자열을 Float으로 변환하여 리턴합니다.

fun main(args: Array<String>){

    val str: String = "1234.5678"

    val num: Float = str.toFloat()

    print("num : $num")
}

Output:

num : 1234.5678

NumberFormatException

toFloat()은 숫자가 아닌 문자열을 변환할 때 NumberFormatException이 발생시킵니다.

fun main(args: Array<String>){

    val str: String = "1234.5678a"

    val num: Float = str.toFloat()
}

Output:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1234.5678a"
	at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
	at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
	at java.base/java.lang.Float.parseFloat(Float.java:455)

다음과 같이 예외처리가 필요합니다.

fun main(args: Array<String>){

    val str: String = "1234.5678a"

    try {
        val num: Float = str.toFloat()
        print("num : $num")
    } catch (e: NumberFormatException) {
        println("Not number: $str")
    }
}

Output:

Not number: 1234.5678a

String.toFloatOrNull()

String.toFloatOrNull()은 문자열을 Float으로 변환하여 리턴합니다. 만약 문자열이 숫자가 아닐 때는 null을 리턴합니다.

toFloatOrNull()를 사용하면 NumberFormatException에 대한 예외처리가 필요없습니다. 대신 Nullable한 객체에 Float을 할당해야 합니다.

fun main(args: Array<String>){

    val str: String = "1234.5678a"

    val num: Float? = str.toFloatOrNull()

    print("num : $num")
}

Output:

num: null
Loading script...
codechachaCopyright ©2019 codechacha