3.4 最大浮点数?

Posted cucy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.4 最大浮点数?相关的知识,希望对你有一定的参考价值。

package main

import (
    "fmt"
    "math"
    "math/big"
)

const PI = `3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196`
const diameter = 3.0
const precision = 400

func main() {

    pi, _ := new(big.Float).SetPrec(precision).SetString(PI)
    d := new(big.Float).SetPrec(precision).SetFloat64(diameter)

    circumference := new(big.Float).Mul(pi, d)

    pi64, _ := pi.Float64()
    fmt.Printf("Circumference big.Float = %.100f\n", circumference)
    fmt.Printf("Circumference float64   = %.100f\n", pi64*diameter)

    sum := new(big.Float).Add(pi, pi)
    fmt.Printf("Sum = %.100f\n", sum)

    diff := new(big.Float).Sub(pi, pi)
    fmt.Printf("Diff = %.100f\n", diff)

    quo := new(big.Float).Quo(pi, pi)
    fmt.Printf("Quocient = %.100f\n", quo)

}

// Round returns the nearest integer.
func Round(x float64) float64 {
    t := math.Trunc(x)
    if math.Abs(x-t) >= 0.5 {
        return t + math.Copysign(1, x)
    }
    return t
}

/*
Circumference big.Float = 9.4247779607693797153879301498385086525915081981253174629248337769234492188586269958841044760263512039
Circumference float64   = 9.4247779607693793479938904056325554847717285156250000000000000000000000000000000000000000000000000000
Sum = 6.2831853071795864769252867665590057683943387987502116419498891846156328125724179972560696506842341360
Diff = 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Quocient = 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

*/

以上是关于3.4 最大浮点数?的主要内容,如果未能解决你的问题,请参考以下文章

Go语言核心技术(卷一)之2.2-浮点数

OpenGL:为啥我不能将单个浮点数从顶点着色器传递到片段着色器?

单精度和双精度有啥不同?

keil浮点数不带df是哪一个

006 整数/浮点数/cpu频率

内部格式为 GL_RGBA8 的纹理在片段着色器中显示为浮点数