Go中的实数

时间:2018-10-31 00:41:52

标签: go math

如何在Go中处理实数?

例如:

multiprocessing

但使用Go:

(627.71/640.26)^(1/30) = 0.999340349 --> correct result

1 个答案:

答案 0 :(得分:6)

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

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

  

The Go Programming Language Specification

     

Integer literals

     

Floating-point literals

     

Arithmetic operators

     

整数运算符

     

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

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

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