float64(0) 和 0.0 參與計算結果有時不同

xuchunyang · · 297 次點擊 · 開始瀏覽    置頂
下面的符合預期: a := (float64(0) - 32) * 5 / 9 b := (0.0 - 32) * 5 / 9 fmt.Println(a == b, a, b) // Output: true -17.77777777777778 -17.77777777777778 但它們分別加上 273.15,結果竟然不同了: c := (float64(0) - 32)*5/9 + 273.15 d := (0.0 - 32)*5/9 + 273.15 fmt.Println(c == d, c, d) // Output: false 255.3722222222222 255.37222222222223 這是為什么? --- https://play.golang.org/p/0v1PjVwNOnI

入群交流(和以上內容無關):Go中文網 QQ 交流群:729884609 或加微信入微信群:274768166 備注:入群;關注公眾號:Go語言中文網

297 次點擊  
加入收藏 微博
7 回復  |  直到 2019-11-12 11:19:31
暫無回復
添加一條新回復 (您需要 登錄 后才能回復 沒有賬號 ?)
  • 請盡量讓自己的回復能夠對別人有幫助
  • 支持 Markdown 格式, **粗體**、~~刪除線~~、`單行代碼`
  • 支持 @ 本站用戶;支持表情(輸入 : 提示),見 Emoji cheat sheet
  • 圖片支持拖拽、截圖粘貼等方式上傳