超新手問題,請教關於 float & double 問題,謝謝

/* ch2 floats.c */ #include <stdio.h> #include <stdlib.h> int main() { float pi = 34.898; double electron = 0.1; printf("PI = %f \n", pi); printf("Electron = %f \n", electron); system("PAUSE"); return 0; }
pi = 34.898
但運算結果是 34.897999
electron = 0.1
但運算結果是 0.100000
為何 pi 的運算結果會有變異?
electron 運算後在小數位多了五個 0,double 在小數位後是必然出現六個位的嗎?
其實如非需要用到極為精確的數字,double 是否比較少用到的?
先謝謝各位大大~
