이 문제를 해결하는 방법을 이해하는 데 도움이 필요합니다.매우 큰 float 값을 2 자리로 줄이십시오. C++
-27.8738e007
는 I 2 자리 (-27.87)으로 절단 할 필요가 있지만, I :
I는, 예를 들면, 그 값이 부동 소수점 수 (이러한 동적 번호, 정적 없음)이 성공하지 못해.
나는 다른 형태를 시도했지만, 아무것도 수의 그 "E"에 대한 작동합니다 ... 예를 들어
:
float number = -27.8738e007;
int decimals = 2;
number = (roundf (number * pow (10, decimals))/pow (10, decimals));
이 -2.787383 + 008 반환 내가 얻을 필요 - 사전에 27.87
감사
인사말
이
http://en.wikipedia.org/wiki/Scientific_notation를 참조하십시오. 부동 소수점 표현은 (거의 항상) 바이너리입니다. '1.23 '과 같은 숫자는 정확히 표현할 수 없습니다. 출력을 반올림하는 것은 의미가 있지만 내부적으로 반올림하면 정보가 손실됩니다. –