为了账号安全,请及时绑定邮箱和手机立即绑定

Go中的实数

Go中的实数

Go
大话西游666 2023-05-04 17:14:01
如何在 Go 中使用实数?例如:(627.71/640.26)^(1/30) = 0.999340349 --> correct result但随着围棋:fmt.Print(math.Pow((627.71 / 640.26), (1 / 30))) = 1 --> wrong
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

使用浮点(实数)而不是整数除法。例如,


package main


import (

    "fmt"

    "math"

)


func main() {

    fmt.Print(math.Pow((627.71 / 640.26), (1.0 / 30.0)))

}

游乐场:https://play.golang.org/p/o7uVw9doaMu


输出:


0.999340348749526

package main


import "fmt"


func main() {

    fmt.Println(1 / 30)     // integer division

    fmt.Println(1.0 / 30.0) // floating-point division

}

游乐场:https://play.golang.org/p/VW9vilCC9M8


输出:


0

0.03333333333333333

Go 编程语言规范

整数文字

浮点字面量

算术运算符

整数运算符

对于两个整数值x和y,整数商q = x / y和余数r = x % y满足以下关系:

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

x / y 截断为零(“截断除法”)。


查看完整回答
反对 回复 2023-05-04
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信