- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对这段代码中的特定值集有疑问。
double inputs[] = {0, -546543, 99015, 6750, 825, 2725, 70475,
50950, 42200, 6750, 26925, 16125, 134350, 10075, 79378};
double result = 0;
for (int i = 0; i < 15; i++) {
result += inputs[i]/100;
}
我预计 result
的最终值为 0。如果我除以 100,它就是 0。但是,当我在将每个值添加到 result
之前将其除以 100 时,我最终得到的是 -6.8212102632969618e-013。
关于浮点运算,我有很多不明白的地方。我知道不能保证完全准确。但是这个数据集似乎没有任何异常——没有很大或很小的值——所以我很惊讶计算结果是错误的。
任何人都可以向我解释一下,并就如何避免这个问题提供任何建议吗?我提供的代码已简化;在实际代码中,我不能不除以 100,也不能很容易地将数字作为整数相加,然后再除以它们。
如有任何建议,我们将不胜感激。
最佳答案
I can't very easily add the numbers as integers and divide them later.
为什么不呢?这听起来正是您问题的解决方案。将整数相加并除一次可能比将 float 相加并相除这么多快得多。
每次除以 100(因为 100 不是 2 的幂),您只是在累积误差。您的所有数字都可以在 double
中精确表示,但是当您将它们分开时,它们不是 - 因此您的错误。除了修改算法之外,您实际上无能为力。
在您的情况下,由于您要除以 100,因此您可以将最终总和四舍五入到最接近的第 100 位,并得到正确的结果。
关于C++ 加倍 : dividing by 100 causes very small error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461347/
matplotlibrc 示例文件指出: ## The font.size property is the default font size for text, given in pts. ## 1
在 HTML/CSS 中,可以通过以下方式指定字体大小(已弃用,但所有浏览器都支持): text n 是 {1, 2, 3, 4, 5, 6, 7} 的一个元素。 另一种可能性是: text s 是
我看到很多地方都在谈论插入排序如何适用于小型数据集。不过,我找不到“小”的数字。我的猜测是没有绝对的答案,这取决于运行代码的机器类型。 但是,什么因素决定了插入排序是一个好主意的阈值是多少? “小”的
我为操作栏按钮尝试了两种不同的进度条样式,通过 refreshMenuItem.setActionView(R.layout.actionbar_indeterminate_progress); ac
这个问题可能需要一些编译器知识才能回答。我目前正在做一个项目,我将在其中创建一个数组,可能是 int[2][veryLargeNumber] 或 int [veryLargeNumber][2] 逻辑
请帮助我理解。我是一名技术专家,并试图确定在使用WhatsApp Cloud API执行分配给我的业务任务时是否会有任何限制。。在WhatsApp Business Account文档中,我看到了许多
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我正在尝试对我的一个项目进行“小规模”优化。 有一系列单独很小的数组访问,但分析表明这些数组访问是我的程序的绝大多数时间花费的地方。所以,是时候让事情变得更快了,因为程序大约需要一个小时才能运行。 我
我正在为一个新网站整理我的排版,并且 出现了一个奇怪的现象标签 - 它把我的行高扔掉了。其他一切都很好(标题标签、段落等),但 small正在把它扔到某个地方。 这是我的意思的图像: 我的问题是这个
我的一个客户因为他的网站显示“太小”而大惊小怪。 This is the site in question对我来说它看起来不错。 他附上了一张截图,很明显他遇到这个问题只是因为他“缩小了”。 有没有办
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
我已经使用相同的值行高、垂直边距和填充设置了垂直对齐,但是当有一个较小的元素时,比如 标记,在流中,它破坏了一些像素的垂直节奏,我可以解决添加 vertical-align:top/bottom 但是
我试图创建输入,它在两侧具有 border-bottom 和小(高度)边框,如下所示: 但是这段代码不起作用: input:before, input:after { display: blo
我有以下 fiddle : http://jsfiddle.net/tompazourek/sn5jp/ some normal-sized text some small-sized text p
我使用 MASS::qda() 来查找我的数据的分类器,并且它总是报告 `some group is too small for 'qda' 这是由于我用于模型的测试数据的大小吗?我将测试样本大小从
我想重新组织我们的 Storyboard。我们有大约 25 个小 Storyboard和大约 5 个大 Storyboard。大的太大(在 xCode 中工作时会影响性能)。小的有时只包含一两个场景。
我的产品流程中有一个方面让我浪费了时间。 假设我在集合中有一个类似命名项目的列表,但它们的大小不同 id base_name sizing sum_dimensions
我正在制作一个解析 html 并从中获取图像的应用程序。使用 Beautiful Soup 可以轻松解析并下载 html,图像也可以使用 urllib2。 我确实在 urlparse 中遇到问题,无法
我创建了一个新的 Android 资源目录来支持不同的屏幕尺寸。我在 dimens.xml 中外包了所有硬编码尺寸和 TextSize。但是我的 values-small 目录没有被 Android
我只是出于好奇才问这个问题。 如果您使用 tag 3 次,tag 内的单词按预期变小 3 倍。这是否是一种可用的做法,为什么? Lorem Ipsum dolor sit amet 最佳答案 通常将
我是一名优秀的程序员,十分优秀!