에러 메시지
I/flutter (31346): [🌎 Easy Localization] [WARNING] Localization key [분] not found
E/flutter (31346): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FormatException: Invalid radix-10 number (at character 1)
E/flutter (31346): 120.0
E/flutter (31346): ^
E/flutter (31346):
E/flutter (31346): #0 int._handleFormatError (dart:core-patch/integers_patch.dart:131:5)
E/flutter (31346): #1 int._parseRadix (dart:core-patch/integers_patch.dart:142:16)
E/flutter (31346): #2 int._parse (dart:core-patch/integers_patch.dart:103:12)
E/flutter (31346): #3 int.parse (dart:core-patch/integers_patch.dart:65:12)
E/flutter (31346): #4 showTimePickerBottomSheet.<anonymous closure> (package:diaconn_aps_control/common/widget/my_bottom_picker.dart:73:198)
E/flutter (31346): #5 MappedListIterable.elementAt (dart:_internal/iterable.dart:413:31)
E/flutter (31346): #6 ListIterator.moveNext (dart:_internal/iterable.dart:342:26)
E/flutter (31346): #7 new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:206:27)
E/flutter (31346): #8 new _GrowableList.of (dart:core-patch/growable_array.dart:153:28)
E/flutter (31346): #9 new List.of (dart:core-patch/array_patch.dart:51:28)
E/flutter (31346): #10 ListIterable.toList (dart:_internal/iterable.dart:213:44)
E/flutter (31346): #11 showTimePickerBottomSheet (package:diaconn_aps_control/common/widget/my_bottom_picker.dart:73:220)
E/flutter (31346): #12 _TitleTimePickerWidgetState._onPicker (package:diaconn_aps_control/common/widget/title_time_picker_widget.dart:50:11)
E/flutter (31346): #13 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
E/flutter (31346): #14 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:608:11)
E/flutter (31346): #15 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:296:5)
E/flutter (31346): #16 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:230:7)
E/flutter (31346): #17 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:563:9)
E/flutter (31346): #18 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:94:12)
E/flutter (31346): #19 PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:139:9)
E/flutter (31346): #20 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:539:8)
E/flutter (31346): #21 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:137:18)
E/flutter (31346): #22 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:123:7)
E/flutter (31346): #23 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:439:19)
E/flutter (31346): #24 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:419:22)
E/flutter (31346): #25 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:322:11)
E/flutter (31346): #26 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374:7)
E/flutter (31346): #27 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338:5)
E/flutter (31346): #28 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296:7)
E/flutter (31346): #29 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279:7)
E/flutter (31346): #30 _rootRunUnary (dart:async/zone.dart:1442:13)
E/flutter (31346): #31 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter (31346): #32 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
E/flutter (31346): #33 _invoke1 (dart:ui/hooks.dart:170:10)
E/flutter (31346): #34 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:331:7)
E/flutter (31346): #35 _dispatchPointerDataPacket (dart:ui/hooks.dart:94:31)
E/flutter (31346):
에러 원인
- int.parse() 하는 과정에서 Format이 안되는 에러가 이유
- double 타입 같은 경우 toString()으로 바꿨을 때 소수점 자리도 찍어버리는 문제가 있다.
에러 해결
수정 전 소스
void main() {
double value1 = 1.2;
int value2 = 0;
value2 = int.parse(value1.toString());
}
수정 후 소스
void main() {
double value1 = 1.2;
int value2 = 0;
value2 = int.parse(value1.toStringAsFixed(0));
}
- toStringAsFixed() 메소드도 double 타입의 문자열을 소수 몇 째자리까지만 표기할 때 사용하는 메소드다.
- 반환 타입이 String 타입이기 때문에 소수점 자리를 0으로 표기할 경우 소수점 자리가 따로 표기가 안되기 때문에 형변환을 할 수 있다.
'개발 > 플러터' 카테고리의 다른 글
Flutter 위젯 ExpansionTile (0) | 2022.06.08 |
---|---|
[Flutter] required 키워드, ?? 연산자, ?. 연산자 (0) | 2022.05.30 |
[Flutter] 색상 변경 애니메이션 적용하기 (0) | 2022.05.10 |
댓글