栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Go运算中处理浮点数精度?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Go运算中处理浮点数精度?

包装大

导入“数学/大”

func(* Float)字符串

func (x *Float) String() string

字符串格式x类似于x.Text(’g’,10)。(必须显式调用字符串,Float.Format不支持%s动词。)

使用字符串输入并四舍五入输出,例如,

package mainimport (    "fmt"    "math/big")func main() {    const prec = 200    a, _ := new(big.Float).SetPrec(prec).SetString("5000")    b, _ := new(big.Float).SetPrec(prec).SetString("4000.30")    result := new(big.Float).Sub(a, b)    fmt.Println(result)    fmt.Println(result.String())}

输出:

999.6999999999999999999999999999999999999999999999999999999995999.7

对于十进制,根据定义,二进制浮点数是一个近似值。例如,十进制数字

0.1
不能精确表示,大约为
1.10011001100110011001101 *(2**(-4))

您已经习惯了这种事情,因为您知道重复小数,这是有理数的近似值:

1 / 3 = .333...
3227 / 555 =5.8144144144...

参阅每位计算机科学家应了解的有关浮点算法的知识。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号