首先為什麼我會為了 float 而特別開了一站跟大家分享呢? 因為我覺得 float 有一些知識需要跟大家好好分享一下 ! !
那一定還是會有人有疑惑,不就只是個變數型態嗎? 為什麼需要特別介紹呢? 那首先 Go 的變數型態並不能單純只是輸出 ==float== ,如下圖所示:
package main
import ("fmt")
func main() {
var num float = 3.14
fmt.Println(num)
}
輸出結果
發現它會顯示未定義變數,然後輸出不了,這是為什麼呢? 讓我們先往下看,我接著慢慢分享 float 的知識
沒錯 ! 為什麼 float 會輸出不了,那是因為 Go 把 float 改成有兩個狀態,一個是 float64 ,另一個則是 float32,這時你會好奇他們兩者的差異到底差在哪?
精度取決於尾數的多少,顯而易見雙精度較單精度好很多,雙精度可以精確的顯示出小數點後 15 位的浮點數,而單精度只能精確的顯示出小數點後 6 位的浮點數。
那在 Go 語言中我們該如何取出小數點後幾位的數字呢? 舉例來說,如果使用以下的程式碼:
package main
import ("fmt")
func main() {
var num float64 = 3.1415926
fmt.Println(num)
}
輸出結果
它會印出你所打的所有浮點數,那假設今天你想要只取小數點後兩位,應該怎麼做呢? 你可以試試看以下的程式碼:
package main
import ("fmt")
func main() {
var num float64 = 3.1415926
fmt.Printf("%.2f",num)
}
輸出結果
神奇吧 ! ! 這是因為我更改了輸出格式,並且多了一個 ("%.2f")
的程式碼,這個程式碼就是在宣告說等等印出來的值是浮點數而且我只取小數點後兩位 !!當然依此類推,取後三位就是 ("%.3f")
、取後四位就是 ("%.4f")
...
以上就是我想跟大家分享的一些小知識,同時也歡迎大家來熱烈討論~ 下一站要跟大家分享一下一些小小的知識也就是註解,然後會回顧且複習重點以及功課,那就跳到下一站囉~~
https://i.pinimg.com/474x/c0/7e/74/c07e74e3cb86f1566baaed864249474a.jpg
https://www.w3schools.com/go/go_float_data_type.php
http://c.biancheng.net/view/14.html
https://www.educative.io/answers/what-is-type-floattype-in-golang