四精度:Quadruple-precision floating-point format八精度:Octuple-precision floating-point format目前所有CPU的指令集直接支援單精度和雙精度的計算,部分特殊CPU的指令集直接支援四精度,而八精度,在硬體層面並無實現,只能用軟體模擬浮點數的標準原本就是用32位表示的,這個就是單精度。後來覺得不夠精確,所以就用64位表示,這就是雙精度,因為位數翻了翻。標準的單精度在十進位制裡面可以精確表示7位有效數字,再多就不精確了。標準的雙精度可以精確表示15~17位有效數字。其實題主只需要記住用法就好了,不用扣那麼細。想要詳細瞭解為什麼浮點數不夠精確,看這篇單精度的wiki就好了:Single-precision floating-point format我做一個簡略的解釋,因為浮點數是二進位制,所以只能用2的次方表示,他有一個指數部分和一個小數部分。先理解什麼是小數部分,0.5對浮點數來說,是,0.25對浮點數來說是;那麼怎麼表示0.75呢,是,這樣看起來皆大歡喜,這些數都能精確表示。然而,碰到0.3呢,就只有一臉矇蔽了,為啥,因為0.3不能精確拆成2的次方,最後只能儘可能的精確成0.3000000,至於第7個0後面是啥,單精度浮點數就不管了。實際上的浮點數實現中,小數部分會加1,變成1.XXXXXX,這樣。指數部分也是二的次方,舉一個簡單的例子,24,在浮點數里面,24的指數部分是 ,小數部分是 ,24用浮點數表示就是;在上面的例子中,0.5完整的用浮點數表示是,指數部分是,小數部分是 1.0;0.25完整的用浮點數表示是,指數部分是,小數部分是 1.0;0.75完整的用浮點數表示是,指數部分是,小數部分是
四精度:Quadruple-precision floating-point format八精度:Octuple-precision floating-point format目前所有CPU的指令集直接支援單精度和雙精度的計算,部分特殊CPU的指令集直接支援四精度,而八精度,在硬體層面並無實現,只能用軟體模擬浮點數的標準原本就是用32位表示的,這個就是單精度。後來覺得不夠精確,所以就用64位表示,這就是雙精度,因為位數翻了翻。標準的單精度在十進位制裡面可以精確表示7位有效數字,再多就不精確了。標準的雙精度可以精確表示15~17位有效數字。其實題主只需要記住用法就好了,不用扣那麼細。想要詳細瞭解為什麼浮點數不夠精確,看這篇單精度的wiki就好了:Single-precision floating-point format我做一個簡略的解釋,因為浮點數是二進位制,所以只能用2的次方表示,他有一個指數部分和一個小數部分。先理解什麼是小數部分,0.5對浮點數來說,是,0.25對浮點數來說是;那麼怎麼表示0.75呢,是,這樣看起來皆大歡喜,這些數都能精確表示。然而,碰到0.3呢,就只有一臉矇蔽了,為啥,因為0.3不能精確拆成2的次方,最後只能儘可能的精確成0.3000000,至於第7個0後面是啥,單精度浮點數就不管了。實際上的浮點數實現中,小數部分會加1,變成1.XXXXXX,這樣。指數部分也是二的次方,舉一個簡單的例子,24,在浮點數里面,24的指數部分是 ,小數部分是 ,24用浮點數表示就是;在上面的例子中,0.5完整的用浮點數表示是,指數部分是,小數部分是 1.0;0.25完整的用浮點數表示是,指數部分是,小數部分是 1.0;0.75完整的用浮點數表示是,指數部分是,小數部分是