亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 中將 Float64 類型打印為 int

Golang 中將 Float64 類型打印為 int

Go
函數式編程 2023-07-04 15:06:24
令人驚訝的是,我找不到其他人有同樣的問題;我嘗試簡單地在 Go 中初始化 float64 并打印它,然后嘗試字符串轉換并打印它。兩種輸出都不準確。我已經嘗試過使用許多分數,包括那些不能解析重復小數的分數,以及簡單地寫出浮點數并打印(例如,然后num := 1.5給出fmt.Println(num)輸出1)。package mainimport (    "fmt"    "strconv")func main() {    var num float64    num = 5/3    fmt.Printf("%v\n", num)    numString := strconv.FormatFloat(num, 'f', -1, 64)    fmt.Println(numString)}預期的:// Output:1.661.66實際的:// Output:11
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

Go 編程語言規范

整數文字

整數文字是表示整數常量的數字序列。

浮點文字

浮點文字是浮點常量的十進制表示形式。它有整數部分、小數點、小數部分和指數部分。整數和小數部分由小數組成;指數部分是 e 或 E 后跟一個可選的有符號十進制指數。整數部分或小數部分之一可以省略;小數點或指數之一可以被省略。

算術運算符

對于兩個整數值 x 和 y,整數商 q = x / y 和余數 r = x % y 滿足以下關系:

x?=?q*y?+?r??and??|r|?<?|y|

x / y 被截斷為零。


您使用整數文字和算術編寫(x / y 截斷為零):

package main


import (

? ? "fmt"

? ? "strconv"

)


func main() {

? ? var num float64

? ? num = 5 / 3 // float64(int(5)/int(3))

? ? fmt.Printf("%v\n", num)

? ? numString := strconv.FormatFloat(num, 'f', -1, 64)

? ? fmt.Println(numString)

}

游樂場:https://play.golang.org/p/PBqSbpHvuSL


輸出:


1

1

您應該使用浮點文字和算術來編寫:


package main


import (

? ? "fmt"

? ? "strconv"

)


func main() {

? ? var num float64

? ? num = 5.0 / 3.0 // float64(float64(5.0) / float64 (3.0))

? ? fmt.Printf("%v\n", num)

? ? numString := strconv.FormatFloat(num, 'f', -1, 64)

? ? fmt.Println(numString)

}

游樂場:https://play.golang.org/p/Hp1nac358HK


輸出:


1.6666666666666667

1.6666666666666667


查看完整回答
反對 回復 2023-07-04
  • 1 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號