微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

strtof() 函数错位小数位

如何解决strtof() 函数错位小数位

我有一个字符串 "1613894376.500012077",我想使用 strtof 来转换为浮点 1613894376.500012077。问题是当我使用 strtof 时,我得到以下结果,小数点位置错位 1.61389e+09。请帮助我确定如何正确使用 strof

解决方法

典型的 float 是 32 位的,只能准确表示大约 232 个不同的值。 “1613894376.500012077”不是其中之一。

“1.61389e+09”与“1613890000.0”的值相同,表示float可以表示的接近值。

2 个最接近的 float 是:

1613894272.0 
1613894400.0 // slightly closer to 1613894376.500012077

更精确地打印以查看更多数字。

,

小数点没有错位。符号“1.61389e+09”表示1.61389•109,即1,613,890,000.,小数点在正确位置。

strtof 在您的计算机中的实际结果可能是 1,894,400。这是 IEEE-754 binary32(“单一”)格式可以表示的与 1613894376.500012077 最接近的值,也是 float 常用的格式。使用 %g 打印时,默认仅使用六位有效数字。要更精确地查看它,请使用 %.999g 打印它。

,

数字 - New chapter on existent Section 是等价的(与 1613894376.500012077 达到机器精度的数字相同。)1.61389e+09 后缀表示小数点位于小数点右边的九位放置它的位置(或者数字乘以 e+09 的九次方)。这是计算机科学中的一种常用符号,称为科学记数法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?