更新於 2024/09/10閱讀時間約 4 分鐘

【筆記】Python的資料型態:float

float:浮點數,表示帶有小數部分的數字,如 3.14、-0.1、32.080 等

應用場景

應用場景可以我把它分為兩大類,數學計算跟座標

金融計算

int跟float一樣,都可以進行數學計算,但由於金融領域的數學計算會需要更精密的計算,經常需要處理小數部分,例如計算利率、匯率、金融商品以及財務報表,舉幾個例子

匯率:

除法:

result = 100.0 / 22.5 
print(result)


現金流:

身為一個社畜,很多時候需要計算自己一個月的剩下的錢多少,來計算自己的現金流,假設一個在美國的社畜工程師他的週薪是2000美金,支出逐週計算,我們可以這樣列

#收入
income = [2000.0, 2000.0, 2000.0, 2000.0]

#支出
expenses = [1351.2, 1451.7, 1555.0, 1239.7]

#計算現金流
cash_flow = [inflow - outflow for inflow, outflow in zip(income, expenses)]

print(cash_flow)

#計算現金流

這條運用了for迴圈,遍歷每個月的支出跟收入

同時使用了zip函數,陣列中每組income、expenses都會配對相減形成一個數,以防止每個income都會跟每個expenses進行組合


科學計算

透過高精度的數值計算,可以模擬物理現象,像是拋物線、電子電路、流體動力學等,以拋物線為例子,假設韌帶受傷的大谷翔平又敲了一發全壘打,不考慮阻力跟全壘打牆面高度的情況下:

# 我們需要把直接轉成曲線,會需要用到math裡面的函數
import math

# 水平位置跟垂直位置都設置為0

# 水平位置
x0 = 0

# 垂直位置
y0 = 0

# 初始速度跟初始角度

# 初始速度(m/s),擊球初速100英里/小時換算成公尺/秒
velocity = 44.704

# 角度,就像大谷翔平擊出菁英級的26度角
angle = 26.0

# 質量(kg),就是一顆棒球的重量,不過稍微重了一點
mass = 0.15

# 重力加速度(m/s^2)​
gravity = 9.8


#把直線角度變成弧線角度
radians = math.radians(angle)


# 計算水平和垂直速度分量

# 計算水平​
horizontal= velocity * math.cos(angle)
# 計算垂直​
vertical= velocity * math.sin(angle)

# 模擬每個時間步驟的時間間隔(秒)
frequency = 0.01




### 以上設定結束,計算開始

# 初始水平為0
x = x0
# 初始垂直為0
y = y0
# 初始時間為0
t = 0.0


while y >= 0:
# 更新時間,每0.01秒狀態更新,觀察拋物線運動
t += frequency

# 計算水平位置
x = x0 + horizontal * t
# 計算垂直位置,這0.5怎麼來的,就是自由落體的公式
y = y0 + (vertical * t) - (0.5 * gravity * t * t)

# 印出來,印出每0.01秒的變化
print(f"時間: {t:.2f} 秒,水平位置: {x:.2f} 米,垂直位置: {y:.2f} 米")

print("全壘打!")

結果:

這球飛了大概6.96秒,最後變成全壘打,應該是這樣算(吧),希望高中物理的記憶還正確


其他

不熟悉、沒有辦法弄出範例的就放在這


圖形處理和遊戲程式

都需要畫面的呈現,圖形處理、遊戲引擎這些都需要使用浮點數來表示座標、顏色、紋理、變換矩陣等


地理資訊系統

俗稱GIS,浮點數用於空間分析、圖像處理、數字地形操作、地理統計和分析等


氣象系統

浮點數用在溫度、濕度、風速、降雨量、氣象圖表和視覺化等


3D建模和畫面渲染

浮點數用於表示物體的位置、旋轉、視線角度和材質等


機器學習

需要透過浮點數來表示激活值、權重值、物件特徵等訊息



總結

浮點數在科學、金融、遊戲等多個領域都需要用到,可以用於計算精密數字跟影像顯示,但需要注意的是,有些計算的情況下會引發自動進位或是自動捨去的情況,所以需要更精確掌握精度的長度,才能確保內容正確

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.