BigNumber는 큰 수 처리에 정말 좋은 라이브러리지만
초보자를 위한 라이브러리는 아닌 듯.
참조1)
loop 바깥에서
BigNumber a="1234567890.0987654321"; 로 전역선언후 시리얼로 출력해 보면
a=1234567890
로 나온다.
BigNumber a=1234567890.0987654321; 로 따옴표를 떼면
a=32767로 나옴.
특이하게도
BigNumber a='1234567890.0987654321'; 로 홑따옴표를 붙이면
a=12849가 된다.
BigNumber a="1234567890.0987654321"; 를 loop 안쪽에서 선언하면
a=1234567890.0987654321 로 제대로 나온다.
BigNumber a = "123556.2342" 형태나 BigNumber a ("143563245.21345245") 형태로 사용해야 한다.
이 라이브러리는 숫자를 String 취급하는 것 같은데
그렇다고 실제로 String으로 생각하고 스케치를 하면 오류를 뿜는다.
문자열 길이를 측정하는 length() 같은 함수를 쓸 수 없다.
참조2)
LED 디스플레이에 숫자 표기를 정확히 하기 위해서는 숫자의 자리수가 얼마인지 셀 수 있어야 한다.
디스플레이의 자릿수를 벗어나면 정리해 주어야 한다.
숫자의 길이를 측정하려면
char s = n.toString(); //n을 문자열로 치환하여 s에 저장
length = strlen(s); //s의 길이를 구하여 length에 저장
같은 식으로 사용해야 한다.
하지만 이 경우 소수점이 포함되어 계산되므로
1 -> 1자리수
1.00 -> 4자리수 로 계산되는 문제가 있다.
문제1)
1이상의 수는 어떻게든 처리가 가능하다.
하지만 1 미만의 수는 소수점 때문에 처리가 매우 곤란해진다.
1 = 1.0000000 과 같이 나오는데 이 경우 0.000000을 어떻게 처리해야 하는가?
문제2)
추측1)
http://cafe.naver.com/arduinostory/52325
https://arduino.stackexchange.com/questions/1013/how-do-i-split-an-incoming-string
http://cafe.naver.com/arduinostory/27858
'Making > 빈티지 아두이노 계산기' 카테고리의 다른 글
빈티지 스타일의 아두이노 계산기 #8 - LED 매트릭스 추가, 자리수 계산하기 고민중. (0) | 2017.12.25 |
---|---|
빈티지 스타일의 아두이노 계산기 #7 (0) | 2017.12.19 |
빈티지 스타일의 아두이노 계산기 #6 - 큰 수 처리용 아두이노 라이브러리 발견. (0) | 2017.11.17 |
빈티지 스타일의 아두이노 계산기 #5 - 자릿수의 신뢰성을 어떻게 유지할 것인가에 대한 고민. (0) | 2017.11.06 |
빈티지 스타일의 아두이노 계산기 #4 - 키패드 매트릭스 테스트 및 변수형 처리 고민. (2) | 2017.10.29 |