[筆記]浮點數(Floating Point)整理

更新於 發佈於 閱讀時間約 2 分鐘

何謂浮點數?

在了解浮點數之前,可以先大概了解一下跟他相對應的定點數

定點數:

小數點固定,整個數字表示為 整數 + 小數
今天要表示 25.125
那定點數表示法就是 25 125,中間再以小數點作為連接

浮點數:

小數點是漂浮不定的,整個數字表示分為 有效數字跟指數,類似於科學記號表示法
今天要表示 25.125
那浮點數表示法就是 2.5125 * 10^-1

為何需要浮點數?

今天若需要儲存那些很大的數字或很小的數字的時候,為了要讓精度提高,我們會需要大量的記憶體去儲存那些數字
像是 150000000 和 0.00000015
若是以浮點數表示就是 1.5*10^7 和 1.5 * 10^-7
電腦只需要儲存 1.5 有效位數跟 7 指數這兩個數字,這樣節省大量記憶體,也讓我們能夠操作很大或是很小的數字
若以圓周率來說
3.14159265359
若要很精確儲存圓周率,需要極大的記憶體才能儲存,儲存越多的位數,代表越精準
在記憶體有限的狀況下,我們會使用約略值去表示,像是 3.14
所以浮點數讓我們能儲存很大或很小的數字,但它本身可能只是一個約略值

最令人困惑的問題 0.1 + 0.2 ≠ 0.3

之所以 0.1 + 0.2 ≠ 0.3 是因為我們電腦用二進位浮點數去表示這些數字,然而 1/10 跟 2/10 並不是二進位可以明確表示出來的,導致他最終會以約略值去呈現
0.1 → 0.0011001100110011......
0.2 → 0.001100110011....
後面...為受限於有效位數約為 23 位數(單精度)的情況下,後面的會被省略掉
結果就是兩個相加後不會直接等於 0.3

那要怎麼解決這種小數點精算的問題?

在處理像是匯率或是跟錢相關的問題時,我們可以先將有小數點的數字乘於一定的倍數讓其沒有小數點,運算後再將其除回去即可,或是改成十進位制

結論

  1. 浮點數是類似於科學記號的表示法
  2. 浮點數解決了儲存很巨量或很小的數字佔太多記憶體問題
  3. 浮點數本身可能只是一個約略值,在做精確的小數點計算可能會有非預期的結果
  4. 太大的數字浮點數也有可能會造成溢位
avatar-img
1會員
8內容數
123
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
1. 什麼是浮點數? 浮點數是一種用來表示小數或非常大的數字的方法。 它的作用是讓電腦能夠處理像 3.14159(圓周率)或 1234567890(很大的數字)這樣的數字。 為什麼要有浮點數? 👉 因為用電腦表示這些數字的時候,記憶體有限,直接儲存會很浪費空間,效率也低。 2.
**浮點數(Floating Point, FP)**的概念最早可以追溯到20世紀初,但它在現代計算中的應用則是在電腦科學發展的中期開始逐漸普及。 1. 浮點數的起源 早期數值表示: 在 20 世紀初,數值運算主要依賴定點數(Fixed Point)表示法,這種方式限制了數值的範圍和精度,尤
Thumbnail
我們在上一篇簡單介紹了 int(整數)是做什麼用的,接下來要介紹常和他一起出現的好朋友 float 浮點數 跟 str 字串。 float 浮點數: 函數的式子寫做 float( ) ,浮點數就是帶有小數點的資料型別,他可以將字串或是數字轉換為有小數點的狀態。前提是字串內的字符必須是數字的格
你學習任何數學, 都要問這哪個部分是微積分長出來的, 哪個部分是線性代數長出來的。 當然,你需要先把微積分與線性代數學一次, 知道裡面有哪些內容, 接下來學任何新的東西,其實都是微積分跟線性代數。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
題目敘述 輸入給定一個鏈結串列,整體看代表一個十進位的數字,各別看每個節點代表每個digit,分別從最高位~最低位個位數。 要求我們把原本的數字乘以二,並且以鏈結串列的形式返回答案。 原本的英文題目敘述
Thumbnail
這篇文章,會帶著大家複習以前學過的二進位DP框架, 並且以0~N的整數有幾個bit1,有幾個bit0的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 常見的考法 請問整數k有幾個bit1? 有幾個bit0? 請問整數0到整數N分別各有幾個bit1? 有幾個
Thumbnail
該文章介紹了浮點數精度的概念,包括雙精度、單精度、半精度、8位精度、4位精度、量化精度、多精度和混合精度。同時還介紹了nVidia A100開始的TF32精度和BF16格式,並提供了相關的數據對比。文章強調了TF32和BF16的潛在應用價值及特點。
數學中的除法常常讓人困惑,特別是為什麼不能除以0,本文以生動的例子與情境來解釋除法的概念,讓讀者更容易理解。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
1. 什麼是浮點數? 浮點數是一種用來表示小數或非常大的數字的方法。 它的作用是讓電腦能夠處理像 3.14159(圓周率)或 1234567890(很大的數字)這樣的數字。 為什麼要有浮點數? 👉 因為用電腦表示這些數字的時候,記憶體有限,直接儲存會很浪費空間,效率也低。 2.
**浮點數(Floating Point, FP)**的概念最早可以追溯到20世紀初,但它在現代計算中的應用則是在電腦科學發展的中期開始逐漸普及。 1. 浮點數的起源 早期數值表示: 在 20 世紀初,數值運算主要依賴定點數(Fixed Point)表示法,這種方式限制了數值的範圍和精度,尤
Thumbnail
我們在上一篇簡單介紹了 int(整數)是做什麼用的,接下來要介紹常和他一起出現的好朋友 float 浮點數 跟 str 字串。 float 浮點數: 函數的式子寫做 float( ) ,浮點數就是帶有小數點的資料型別,他可以將字串或是數字轉換為有小數點的狀態。前提是字串內的字符必須是數字的格
你學習任何數學, 都要問這哪個部分是微積分長出來的, 哪個部分是線性代數長出來的。 當然,你需要先把微積分與線性代數學一次, 知道裡面有哪些內容, 接下來學任何新的東西,其實都是微積分跟線性代數。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
題目敘述 輸入給定一個鏈結串列,整體看代表一個十進位的數字,各別看每個節點代表每個digit,分別從最高位~最低位個位數。 要求我們把原本的數字乘以二,並且以鏈結串列的形式返回答案。 原本的英文題目敘述
Thumbnail
這篇文章,會帶著大家複習以前學過的二進位DP框架, 並且以0~N的整數有幾個bit1,有幾個bit0的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 常見的考法 請問整數k有幾個bit1? 有幾個bit0? 請問整數0到整數N分別各有幾個bit1? 有幾個
Thumbnail
該文章介紹了浮點數精度的概念,包括雙精度、單精度、半精度、8位精度、4位精度、量化精度、多精度和混合精度。同時還介紹了nVidia A100開始的TF32精度和BF16格式,並提供了相關的數據對比。文章強調了TF32和BF16的潛在應用價值及特點。
數學中的除法常常讓人困惑,特別是為什麼不能除以0,本文以生動的例子與情境來解釋除法的概念,讓讀者更容易理解。