UVa board에 좋은 글이 있어서 퍼왔다..~


Imagine that the output is 1.05, but due to floating point calculation, your output became 1.049999999999. Now if you print only one digit after the decimal point your output is 1.0 but the real output is actually 1.1.
Thats why almost all problems that have floating point output are judged with a special judge program (marked by a yellow flag). But some problems dont have the special judge, for those problems its better to add eps before printing any floating point number. And eps should be as small as possible. Using 1e-7 to 1e-11 is sufficient. 

 
double a;
a=0.15;
printf("%.1lf\n",a);

The output will show .1, which is obviously not correct. But if you add eps before printing 'a', you will see .2, which is the correct output.


--
정말 기초중의 기초이지만.. 정작 이런걸 가르쳐주는 사람은 없다.. -_-;;



'Problem Solving > Algorithm notes' 카테고리의 다른 글

Euler's phi (Totient function)  (0) 2016.08.15
Inversion Count  (0) 2016.01.31
The Tower of Hanoi  (0) 2011.08.28
Gaussian Prime  (0) 2011.04.03
Floating point number 연산시 Epsilon을 더하는(또는 빼는) 이유..  (2) 2011.03.02
Linear Diophantine Equation  (0) 2011.01.25
점과 선분과의 거리  (2) 2011.01.22
Articulation Points  (0) 2010.11.21
Konig's Theorem  (0) 2010.08.01
Modular Multiplicative Inverse  (0) 2010.06.13
Primality Testing (Miller-Rabin)  (0) 2010.03.23

Comments

  1. jk 2013.12.02 11:13 Permalink Modify/Delete Reply

    제가 사용하는 상용 트레이딩 툴도 float 를 기본형으로 썼는데 버전 높아지면서 double 로 바뀌었네요. double 이 아닌 float 를 사용하는 이유는 뭔가요? 메모리를 반밖에 잡아먹지 않아서 인가요..

    • helloneo 2013.12.02 11:16 신고 Permalink Modify/Delete

      연산속도가 좀 더 빠르지 않을가요..?
      정밀한 소수점 연산이 필요 없을 경우라면 float 써도 될것같아요~

Leave a Comment


to Top