[Flutter] - 오늘의 에러(Unknown operation: Infinity or Nan toInt)

min_chan·2024년 1월 8일
0

오늘의 에러

목록 보기
12/12
post-thumbnail

에러 발생(1)

  • 플러터에서 파이어베이스 db를 사용.
  • 밸런스 게임의 전체 참여자 수와 A를 선택한 참여자, B를 선택한 참여자를 비교하여 결과를 보여주려는 연산 코드를 작성하고 있는 도중 에러 발생.

에러 코드 & 사진 (2)

     final countA = snapshot.data!.docs[index]['countA'];
     final countB = snapshot.data!.docs[index]['countB'];
     final sumCount = snapshot.data!.docs[index]['sumCount'];

     double percentA = (countA / sumCount);
     double percentB = (countB / sumCount);

     int roundA = (percentA * 100).round();

     int roundB = (percentB * 100).round();


에러 발생 원인 (3)

  • 파이어베이스 초기 세팅인 sumCount가 0으로 설정되어 있어 해당 필드를 바로 불러왔을 경우 percentA 와 percentB를 구하는 연산 과정에서 무한대로 빠져버린다.


해결 방안 & 코드 (4)

  • sumCount가 0인 경우 삼항 연산자를 사용하여 예외처리를 해줬다.
     final countA = snapshot.data!.docs[index]['countA'];
     final countB = snapshot.data!.docs[index]['countB'];
     final sumCount = snapshot.data!.docs[index]['sumCount'];
     
     double percentA = sumCount != 0 ? (countA / sumCount) : 0.0;
     double percentB = sumCount != 0 ? (countB / sumCount) : 0.0;

     int roundA = (percentA * 100).round();
     int roundB = (percentB * 100).round();

결과 스크린 샷 (5)

1. 모두 0일 경우


2. 0이 아닐 경우


profile
github.com/kangminchan99

0개의 댓글