11.125
22.5
33.75
45.0
56.25
67.5
78.75
90.0
각각 이렇게 되어 있습니다. 궁금한점이 있습니다.
ST_Pro.MaxSpeed = 90;
ST_Pro.block = (float)(ST_Pro.MaxSpeed) /8.0;
u8 ProgMode_2[20]={2,2,4,4,4,6,6,6,8,8,8,8,6,6,6,4,4,4,2 ,2};
hight = ProgMode_2[ST_Pro.TimeCnt]; // ST_Pro.TimeCnt의 초기값은 0이며 일분에 1씩 증가함
ST_Pro.Speed = ST_Pro.block * hight; // 즉 이값은 1분에 한번씩바뀜
for(i=1;i<9;i++)
{
Dot_block[i-1] = (float)(ST_Pro.block * i);
}
for(j=0;j<8;j++)
{
if((float)(ST_Pro.Speed) >=Dot_block[j]) Nowhight =j+1;
}
이런 상황인데요
궁금한게 있습니다. 22.5, 45.0, 67.5,90.0 와 같이 소수점 1자리 또는 소수점자리가 0인 값에 해당값들은
Nowhight 가 기대한 값대로 나오는데
11.125 , 33.75, 56.25, 78.75 처럼 소수점2째자리 까지 있는 녀석들은 Nowhight가 기대한 값보다 1씩 낮게 나옵니다.
왜그런 것일까요??
'JA(EOGH) Q&A Carroty' 카테고리의 다른 글
처음보는 포토커플러 종류 질문입니다. (0) | 2018.08.17 |
---|---|
초음파 거리센서 회로도 질문 (0) | 2018.08.17 |
stm32 remap 질문(부저 멜로디) (0) | 2018.08.17 |
공통 이미터,베이스,콜렉터 회로에관한 간단한질문 (0) | 2018.08.17 |
메모리 부족 문제 메모리 늘리는법 질문 (0) | 2018.08.17 |