Flutter/Dart - String을 Double로 변환

문자열을 double로 변환하는 방법을 소개합니다.

1. double.parse()를 이용한 방법

double.parse(string)은 String을 double로 변환합니다.

void main() {
    String str = "12.3456789";

    double n = double.parse(str);
    print(n);
}

Output:

12.3456789

하지만, 만약 문자열이 숫자가 아닐 때(숫자가 아닌 문자가 포함) FormatException이 발생합니다.

String str = "12.3456789a";
double n = double.parse(str);
print(n);

Output:

Unhandled exception:
FormatException: Invalid double
12.3456789a

2. FormatException 예외 처리 방법

double이 아닌 문자열을 double.parse()로 변환하면, FormatException가 발생하며 프로그램이 종료됩니다.

이럴 때는 try - on으로 예외를 처리할 수 있습니다.

아래 예제는 예외가 발생했을 때 변수를 -1을 초기 값으로 설정합니다.

void main() {
    String str = "12.3456789a";

    double n;
    try {
        n = double.parse(str);
    } on FormatException {
        n = -1;
    }
    print(n);
}

Output:

-1

3. tryParse()로 String -> double 변환

tryParse()parse()와 동일하게 String을 파싱해서 double을 리턴합니다.

차이점은, tryParse()는 Exception을 내부적으로 처리하여 예외가 발생했을 때 null을 리턴합니다.

아래 예제를 보면, 올바른 double 값을 갖고 있는 문자열의 경우 tryParse()는 double 값을 리턴하며, 그렇지 않은 경우는 null을 리턴하고 있습니다.

void main() {
    String str1 = "12.3456789";
    var n1 = double.tryParse(str1);
    print(n1); // 12.3456789

    String str2 = "12.3456789aa";
    var n2 = double.tryParse(str2);
    print(null); // 12.3456789
}

Output:

12.3456789
null
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha