program tip

printf ()를 사용하는 소수점 두 자리

radiobox 2020. 12. 11. 08:01
반응형

printf ()를 사용하는 소수점 두 자리


printf()다음과 같이 소수점 이하 두 자리에 숫자를 쓰려고 합니다.

#include <cstdio>
int main()
{
  printf("When this number: %d is assigned to 2 dp, it will be: 2%f ", 94.9456, 94.9456);
  return 0;
}

프로그램을 실행하면 다음과 같은 출력이 나타납니다.

# ./printf
When this number: -1243822529 is assigned to 2 db, it will be: 2-0.000000

왜 그런 겁니까?

감사.


당신이 원하는 것은 %.2f아닙니다 2%f.

또한, 당신은 당신을 대체 할 수 있습니다 %d로모그래퍼 %f)

#include <cstdio>
int main()
{
printf("When this number: %f is assigned to 2 dp, it will be: %.2f ", 94.9456, 94.9456);
return 0;
}

그러면 다음이 출력됩니다.

이 번호 : 94.945600이 2dp에 할당되면 94.95가됩니다.

printf 형식화 옵션에 대한 전체 설명은 여기를 참조하십시오. printf


사용 : "%.2f"또는 그 변형.

형식 문자열 의 권위있는 사양은 POSIX 사양을 참조하세요 printf(). 핵심 C99 사양에서 POSIX 엑스트라를 분리합니다. Google 검색에 표시되는 일부 C ++ 사이트가 있지만 SO의 다른 곳에서 볼 수있는 댓글로 판단하면 적어도 일부는 의심스러운 평판을 가지고 있습니다.

C ++로 코딩하고 있으므로 아마도 피해야 할 것입니다 printf().


대한 %d부분이 참조 이 프로그램의 작업을 수행하는 방법? 소수점 이하 자릿수 사용%.2f


% d. % 02d와 같은 형식을 사용해보십시오.

int iAmount = 10050;
printf("The number with fake decimal point is %d.%02d", iAmount/100, iAmount%100);

또 다른 접근 방식은 다음과 같이 % f를 사용하여 인쇄하기 전에 이중으로 형변환하는 것입니다.

printf("The number with fake decimal point is %0.2f", (double)(iAmount)/100);

내 2 센트 :)

참고 URL : https://stackoverflow.com/questions/4784336/two-decimal-places-using-printf

반응형