반응형
요즘 Vector CAPL 로 SW 자동 검증기능을 구현하고 있는데 반나절 골머리 앓다가 발견한 사실!
문제의 구문은 이것이었다.
if( 수신된 float 타입 signal == 115.2)
분명 %lf로 변환해서 본 수신되 signal 값도 115.2이고 내가 비교하려는 값도 115.2였는데 계속 if 문이 false가 되었다.
이유는 알고보니...
CAPL 에서 부동소수점은 float64로 처리하고 candbc에 의해 parsing 된 부동소수점은 float32라는 점~
무슨 오기를 그렇게 파는건지?
CAPL에서는 유효자릿수 전체를 비교하는거 같은데 아마 float32 뒷자리가 0이 아닌듯 하다...
그래서 소수점 5자리 정도에서 반올림하는 트릭을 써서 결국 해결을 했다.
힌트는 100000을 곱한 후 _round를 하면 된다.. CAPL에도 엑셀에 있는 round(변수, 반올림자릿수) 이게 있었으면 참 좋았으련만...
반응형
'알고 있으면 유용한 것들' 카테고리의 다른 글
미국 비즈니스호텔에서 조식 따로 시켜먹기! (0) | 2022.08.10 |
---|---|
22년 8월 기준, 인천공항 2터미널에서 미국 출국 수속하기 (0) | 2022.08.07 |
2022년 세계 타이어브랜드 순위 1위 ~ 1위 요약정리 Ver1.99 (3) | 2022.07.09 |
삼디다스 모기 기피 효과 좋은 아로마 팔찌 (실제 사용해본 결과..) (0) | 2022.07.08 |
로또 스피또 판매점의 수입은 얼마나 될까? (0) | 2022.07.08 |