含義:表明單精度和雙精度精確的范圍不一樣,單精度,也即float,一般在計算機中存儲占用4字節,也32位,有效位數為7位;雙精度(double)在計算機中存儲占用8字節,64位,有效位數為16位。
原因:不管float還是double 在計算機上的存儲都遵循IEEE規范,使用二進制科學計數法,都包含三個部分:符號位,指數位和尾數部分。其中float的符號位,指數位,尾數部分分別為1,8,23;雙精度分別為1,11,52。
精度主要取決於尾數部分的位數,float為23位,除去全部為0的情況以外,最小為2的-23次方,約等於1.19乘以10的-7次方,所以float小數部分只能精確到后面6位,加上小數點前的一位,即有效數字為7位。
類似,double 尾數部分52位,最小為2的-52次方,約為2.22乘以10的-16次方,所以double精確到小數點后15位,有效位數為16位。