float的有效數字是6或7位,第7位不一定有效,前6位一定有效//具體翻書 下面解釋有效數字是6位的意思: float f = 3.123456 printf("%f",f); 輸出結果可靠資料是前6位,即,3.12345 float f = 123456.789 printf("%.2f",f); 因為要求輸出結果保留兩位,所以輸出結果小數點後會有兩位,但是!這兩位小數保留的毫無意義,因為它不可靠,可靠的6位有效數字已經被整數部分的123456佔完了。根據以上,樓主可以自行給 f 賦各種不同值,多次調整整數部分與小數部分的位數和大小,檢視輸出,相信你會發現,輸出結果,從左數,只有前6位是一定準確的 單精度浮點型(float),在C++中,單精度浮點型(float )專指佔用32位儲存空間的單精度(single-precision )值。單精度在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。 當需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。例如,當表示美元和分時,單精度浮點型是有用的。在foxpro中,單精度浮點型是為了提供相容性,浮點資料型別在功能上等價於數值型。
float的有效數字是6或7位,第7位不一定有效,前6位一定有效//具體翻書 下面解釋有效數字是6位的意思: float f = 3.123456 printf("%f",f); 輸出結果可靠資料是前6位,即,3.12345 float f = 123456.789 printf("%.2f",f); 因為要求輸出結果保留兩位,所以輸出結果小數點後會有兩位,但是!這兩位小數保留的毫無意義,因為它不可靠,可靠的6位有效數字已經被整數部分的123456佔完了。根據以上,樓主可以自行給 f 賦各種不同值,多次調整整數部分與小數部分的位數和大小,檢視輸出,相信你會發現,輸出結果,從左數,只有前6位是一定準確的 單精度浮點型(float),在C++中,單精度浮點型(float )專指佔用32位儲存空間的單精度(single-precision )值。單精度在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。 當需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。例如,當表示美元和分時,單精度浮點型是有用的。在foxpro中,單精度浮點型是為了提供相容性,浮點資料型別在功能上等價於數值型。