iT邦幫忙

0

Go language 變數形態問題

我想回答在這篇,但似乎還要升級有點麻煩,就順著升級條件,發問
https://ithelp.ithome.com.tw/articles/10156046

複數包涵兩種型態 float32、float64
float32(test) 這個部分不會造成溢位嗎?是不是 float64(test2)
會比較好???

還是有其他問題?

froce iT邦大師 1 級 ‧ 2018-09-21 14:39:48 檢舉
?
主要就佔的記憶體大小啊,如果你的程式不要求記憶體佔用越小越好,那當然用float64好,不會溢位。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1

網址:https://golang.org/pkg/math/

MaxFloat32 = 3.40282346638528859811704183484516925440e+38
// 2127 * (224 - 1) / 2**23

SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45
// 1 / 2**(127 - 1 + 23)

MaxFloat64 = 1.797693134862315708145274237317043567981e+308
// 21023 * (253 - 1) / 2**52

SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324
// 1 / 2**(1023 - 1 + 52)

看更多先前的回應...收起先前的回應...
phineas iT邦新手 5 級 ‧ 2018-09-21 16:27:43 檢舉

其實會問這個是因為兩個不同型態在比較時,
我記得在別的語言是自動轉成大的去比對,
只是這邊剛好寫到強轉最小型態,
故好奇提問,這種寫法有刻意的意圖嗎?
不然應該小轉大比較好

可能是避免記憶體浪費

froce iT邦大師 1 級 ‧ 2018-09-21 21:47:19 檢舉

總算看懂你的問題,人家只是要示範float32和64不能直接加,要強制轉型吧,可能根本沒考慮到溢位。

phineas iT邦新手 5 級 ‧ 2018-09-26 15:46:12 檢舉

@froce 沒錯,我在看範例的時候,雖然知道作者的意圖,但就是覺得那邊很奇怪,如果維護的人不是自己,又碰上被開 issue,看到這樣的邏輯,會暴怒吧,哈哈

我要發表回答

立即登入回答