当前位置: 首页 > 知识库问答 >
问题:

C#不断地取整数字,产生不准确的结果

鲜于宜修
2023-03-14
int num1 = 10087;
int num2 = 9971;
int num3 = 9909;
int num4 = 9917;
int num5 = 9904;

double average = (num1 + num2 + num3 + num4 + num5) / 5;

double percentage = (10000 - average) / 100;

如果这个数学是在计算器上完成的,“百分比”的值是0.424。但是,如果在代码中运行它,该值将四舍五入为0.43,这是不准确的。我怎样才能阻止这种情况发生?

注意:请不要质疑10000的数字,我也需要结果完全正确的数字(0.424),这是非常重要的在这种情况下!

共有1个答案

况嘉运
2023-03-14

请阅读msdn表单,它将帮助您了解真正的原因
参考:-http://msdn.microsoft.com/en-us/library/3b1ff23f.aspx

在书中他们已经说了

将两个整数相除时,结果总是一个整数

int num1 = 10087;
int num2 = 9971;
int num3 = 9909;
int num4 = 9917;
int num5 = 9904;

double average = (double)(num1 + num2 + num3 + num4 + num5) / 5;

double percentage = (10000 - average) / 100;
 类似资料:
  • 我正在用C++的SFML制作一个2D游戏,我有一个冲突的问题。我有一个玩家和一张用瓷砖做的地图。不起作用的是我的碰撞检测不准确。当我将玩家向上移动然后向下移动到瓷砖上时,结果会有所不同。 我知道这个问题的根源可能是在计算球员移动时使用帧间的delta时间--所以它不是恒定的。但它平滑了运动,所以我不知道如何做它的其他方式。我试着用定速阀来使碰撞完全准确--速度必须非常低,我对此不满意。 在玩家位置

  • 我尝试像这样查询api: http://api.openweathermap.org/data/2.5/weather?q=kuwait 但是,它给了我与国家“PE”相关的结果。我下载了网站上引用的国家代码json文件,并用“科威特”这个词搜索了所有城市,只有1个城市是:“科威特城”,一个是“科威特”。为什么API在搜索“科威特”时会返回国家“PE”? 我也用了

  • 我正在使用OpenNLP处理诸如“在洛杉矶工作的医生”和“住在好莱坞并在圣莫尼卡工作的女性”之类的查询。对于理解人类的英语来说,这些句子很明显,主题是“医生”和“女性”。然而,当我使用opennlp时,它将句子标记为 [女性生活][好莱坞] 这是另一个句子“住在圣莫尼卡、在马里布工作和踢足球的人”被处理为 为什么OpenNLP的POS标记器错误地标记了它们?这些句子有最简单的语法结构。如果最先进的

  • 本文向大家介绍C++生成不重复的随机整数,包括了C++生成不重复的随机整数的使用技巧和注意事项,需要的朋友参考一下 C++生成不重复的随机数,供大家参考,具体内容如下 给定正整数的范围[n,m],生成k个不重复的随机数字。 IDE是vs013。 运行结果: 这个程序可以用于班级内部按照学号进行随机抽签。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C#产生一个随机整数,包括了C#产生一个随机整数的使用技巧和注意事项,需要的朋友参考一下 示例 本示例生成0到2147483647之间的随机值。            

  • 我试图在Spark DataFrame上使用RangeBetween对Long类型的列执行窗口函数,但窗口的结果不正确。我做错什么了吗? 第一列是事件的时间戳(字符串,我们在实践中不会使用它),第二列是时间戳对应的unix时间,单位为10E-5秒。 现在,我想计算当前行的窗口中的事件数。例如,在3小时窗口中,我做: 正确返回: 和这个ISSU有关吗?[SPARK-19451][SQL]rangeB