https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/166755
DSP28335는 C2000계열의 32bit processor 이다.
실수연산에서 float과 double을 구분하지 않으며 둘 다 32bit 변수로 취급된다.
그리고 sin, cos 등 삼각함수를 포함하여 제공되는 연산 함수들이 모두 32bit 기준으로 되어있다.
64bit 실수를 다루기 위해서는 float64라는 변수를 다루어야 하며, 실제 자료형은 long double로 되어있다.
하지만 위 변수에 값을 대입할때, double에서 하던것처럼 그냥 대입했을 경우, 정밀도가 떨어진 값이 대입된다.
예를들어
double A = 3.141592653589793;
float64 B = 3.141592653589793;
의 경우 디버깅을 하면
A : 3.141592653589793
B : 3.141592741012573
과 같은 결과를 얻게 된다.
이 때는 다음과 같이 해결한다.
'기타 > 문제해결기' 카테고리의 다른 글
Android/AwContents﹕ nativeOnDraw failed [출처] [webview(웹뷰)] W/AwContents﹕ nativeOnDraw failed; clearing to background colo (0) | 2017.02.02 |
---|---|
Android/Suppressed StrictMode policy violation on screen rotation (0) | 2017.02.02 |
MCU Uart 셋팅시 고려사항 (0) | 2016.02.01 |
CC3000 Inactivity timeout (0) | 2015.10.09 |
matlab의 cos(pi/2)가 너무 길게 나온다! (0) | 2015.03.19 |