[ CnUnix ] in KIDS 글 쓴 이(By): doldori (돌돌이) 날 짜 (Date): 2007년 10월 18일 목요일 오후 02시 27분 40초 제 목(Title): Re: 모듈로 문제 2 어거지로 한다면 이렇게도 되겠습니다만.. printf("a=%*s%*d.%1d%%\n", a >= 0 ? 0 : a > -100 ? 5 : a > -1000 ? 4 : a > -10000 ? 3 : a > -100000 ? 2 : 1, a >= 0 ? "" : "-", a >= 0 ? 6 : a > -100 ? 1 : a > -1000 ? 2 : a > -10000 ? 3 : a > -100000 ? 4 : 5, abs(a)/10, abs(a)%10); 별로 마음에 들지 않죠? 한 줄도 아니고... ^^ 일반화된 버전은 const int IntegralWidth = 6; int w = log10(fabs(a)); printf("a=%*s%*d.%1d%%\n", a >= 0 ? 0 : a > -100 ? IntegralWidth - 1 : IntegralWidth - w, a >= 0 ? "" : "-", a >= 0 ? IntegralWidth : a > -100 ? 1 : w , abs(a)/10, abs(a)%10); 그러나 이것도 제 눈에는 obfuscation에 가깝군요. 그냥 double로 캐스팅하는 것이 제일 편하겠네요. |