Freecodecamp: 确切变更问题

创建于 2016-08-04  ·  5评论  ·  资料来源: freeCodeCamp/freeCodeCamp

挑战名称

https://www.freecodecamp.com/challenges/exact-change

问题说明

由于使用“ 0.01”值时计算不正确,因此我遇到了这个问题。 有时,计算的返回值在小数点后7或8位后有错误的值(例如1.01-0.01 = 0.999999996)。
还有其他人有类似的问题吗?
我设法解决了这个问题,但由于这个问题不应该发生,我仍然花了很多时间来做……任何人都不知道为什么会这样。 我的观点是js保存整数和浮点值的原因...

浏览器信息

  • 浏览器名称,版本:Google Chrome,52.0.2743.82(64位)
  • 操作系统:Linux Ubuntu 16.04
  • 手机,台式机或平板电脑:笔记本电脑

您的密码


屏幕截图

help wanted

最有用的评论

嗨,@ FatKoala。 您可以在此处和其他在线地方阅读有关浮点算术(以及处理它的好方法)的所有信息。

一个有趣的事实:JavaScript并未在浮点数和整数之间进行类型区分。 11.00000在JS中是相同的数字(尽管这并不是您遇到的浮点精度错误的原因)。

可能值得在此挑战的“有用的链接”中包含有关浮点算法的资源(尽管不一定是我上面链接的资源),因为这可能是第一个要求用户了解所引起的精度问题的资源。

cc @ FreeCodeCamp / issue-moderators,以获取有关添加此类链接的反馈(以及要添加的链接)

所有5条评论

嗨,@ FatKoala。 您可以在此处和其他在线地方阅读有关浮点算术(以及处理它的好方法)的所有信息。

一个有趣的事实:JavaScript并未在浮点数和整数之间进行类型区分。 11.00000在JS中是相同的数字(尽管这并不是您遇到的浮点精度错误的原因)。

可能值得在此挑战的“有用的链接”中包含有关浮点算法的资源(尽管不一定是我上面链接的资源),因为这可能是第一个要求用户了解所引起的精度问题的资源。

cc @ FreeCodeCamp / issue-moderators,以获取有关添加此类链接的反馈(以及要添加的链接)

是的,这是一个非常有趣的话题,应该恕我直言。

在JavaScript中,只有数字数据类型为number ,通常是64位浮点数(考虑浏览器(准确地说是JavaScript引擎)如何实现它们)。

让我们将其标记为“帮助”,希望社区中的某个人可以链接到很好的资源。 我也会尝试查找,但是是的,如果它来自某个语言专家,那会更好。

感谢您提供的链接,它很有帮助...在我编码时对问题感到非常沮丧...现在有道理...我同意应该将它链接到某个地方,或者更早地解释这些事情会发生...

我戳了一下, @ BKinahan的链接似乎至少比大多数都好,并且似乎很简单。 我投票使用他的链接。 除非有人愿意,否则我很乐意做PR。

@dhcodes请继续,:wink:

此页面是否有帮助?
0 / 5 - 0 等级