- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有些数字不能存储在“内存位”中,因为它们的二进制表示会使它们无穷无尽。
在二进制中 11.111011101110... 这不是确切的数字。我现在不记得它到底是什么了。
但我们可以把它想象成以 10 为基数的“无理数”,它在小数点后无限递增。
一些有理数在转换为基数 2 时会面临这个问题。那么我们如何...
1) 代表他们?
2) 用计算机程序计算它们?
3) 对它们执行操作?
编辑:消除困惑并说声谢谢:
好的,我在上面的帖子中说过 --> 查看它或认为它是一个无理数或一个在小数位上越来越长的数字。请读“喜欢”这个词。
现在我有一个数字 0.2 这个简单的数字不能用二进制形式表示。那么如何对其执行操作。
其他问题未解决。
好吧,我只是想提一下我对这里的人的信任:
好吧,“图书馆”或近似存储不是 stackoverflow 极客的答案,因为它们是某些应用程序,在这些应用程序中,保持数字原样很重要。
最佳答案
您应该查看 float 标准,并阅读 "Everthing every programmer should know about floating point numbers"
在处理 float 时,存在关于 float 舍入及其精度的具体问题,就像你说的,我们不能在我们当前的机器中无限地表示它们,所以这些问题已经解决以创造尽可能最好的精度,但是与他们打交道时,必须牢记某些注意事项。
关于c++ - 内存与无理数与 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243545/
我有一道数学题。我有一个无理数 BigDecimal,我想对其进行四舍五入,但是我想在它开始重复之后对其进行四舍五入(如果有意义的话)。例如,如果我有 0.7648951214714714714714
我是一名优秀的程序员,十分优秀!