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

Golang浮点精度float32 vs float64

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

Golang浮点精度float32 vs float64

同意ANisus,go在做正确的事。关于C,我不相信他的猜测。

C标准没有规定,但是libc的大多数实现会将十进制表示形式转换为最接近的浮点数(至少符合IEEE-754 2008或ISO
10967),因此我认为这不是最可能的解释。

C程序的行为可能不同的原因有很多……特别是,某些中间计算可能会以超高的精度(双精度或长双精度)执行。

我能想到的最可能的事情是,是否曾经在C语言中写过0.1而不是0.1f。
在这种情况下,您可能会在初始化时产生过高的精度
(您将float a + double求和0.1 => float会转换为double ,然后将结果转换回浮点数)

如果我模拟这些操作

float32(float32(float32(0.2) + float64(0.1)) - float64(0.3))

然后我发现在1.1920929e-8f附近

经过27次迭代,总计为1.6f



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

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

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