我有这个“科学应用”,其中单个值应该在UI中呈现之前进行四舍五入.根据 this MSDN article,由于“精度损失”,Math.Round(Double,Int32)方法有时会“意外地”出现,例如四舍五入到2.13,而不是2.14.

据了解,这个问题与“银行家四舍五入”无关(参见例如this question).

在应用程序中,有人显然通过在舍入前明确地将Single转换为十进制(即Math.Round((Decimal)mySingle,2))来调用Math.Round(Decimal,Int32)重载来解决这个问题.除了可能出现的二进制到十进制转换问题之外,如果“单一”值太小或不足以适应“十进制”类型,则此“解决方案”也可能会引发OverflowException.

抓住这样的错误,返回Math.Round(Double,Int32)的结果,如果转换失败,不会打击我作为完美的解决方案.也不会将应用程序重写为使用十进制.

是否有或多或少的“正确”的方式来处理这种情况,如果是,可能是什么?

解决方法

我会认为您现有的解决方案(使用Math.Round的十进制版本)是正确的.

潜在的问题是,您希望根据其基数10表示来舍入数字,但您已将它们存储为基础2浮点数.所提供的2.135的例子是其中基数2表示与基数10不完全匹配的那些边缘情况之一.

要获得预期的舍入行为,您必须将数字转换为基数10.最简单的方法正是您已经在做的:暂时将数字转换为十进制长度足以调用Math.Round.

c# – 舍入单个的更多相关文章

  1. Swift 运算属性

    都是直接定义,赋值使用Swift中的运算属性并不是直接用来存储值的,而是类似于函数的作用。他里面封装了getter和setter方法。比如我们举一个例子,正方形类,我们只要有边长的属性,那么周长是不是直接边长*4即可,同理只要知道周长,周长/4也能得到边长。创建一个正方形类属性round就是一个运算属性我们可以试一下有问题可以继续学习苹果开发群:414319235欢迎加入欢迎讨论问题

  2. Swift - 浮点数转换成整数四舍五入与直接截断

    1,直接截去小数部分转换成整数使用强制转换会将浮点部分去除,把整数部分转换为整数。1vari=Int//232,四舍五入转换成整数lroundf是一个全局函数,作用是将浮点数四舍五入转为整数。

  3. swift中字面量的定义使用

    字面量,就是指能够直接了当地指出自己的类型并为变量进行赋值的值。个人观点认为与常量无异。除非特别指定,浮点型字面量的默认推导类型为Swift标准库类型中的Double,表示64位浮点数。十六进制浮点型字面量由前缀0x后跟可选的十六进制小数部分以及十六进制指数部分组成。同样地,也可以在数字前加0,并不会影响字面量的值。

  4. oc和swift实现算法:把 x 数字精确到小数点后第 p 位,不足 p 位补 0,然后四舍五入

    题目:把x数字精确到小数点后第p位,不足p位补0,然后四舍五入用Objective-C实现:用swift实现:

  5. swift3 – Xcode 8 Beta 4 Swift 3 – “圆”行为发生变化

    我有以下简单的扩展为Double,它在所有的Xcode8beta3的工作正常从Beta4开始,我得到“不能使用变异成员的不变价值:”自我“是不可变的”在回合的功能–有人有任何线索吗?

  6. 签入一个整数可以被另一个整数整除(Swift)

    我需要检查一个整数是否可以被另一个整数整除.如果不是,我想把它四舍五入到最接近的数字.例:numberTwo不是numberOne的倍数,因此我希望它可以将数字四舍五入到6.我该怎么做?谢谢您可以使用模数运算符%:模数在2个数字之间找到整数除法的余数,例如:20/3的结果是6.666667–被除数减去该除数的整数部分乘以除数(3*6)是模数,在这种情况下等于2.如果模数为零,则除数是除数的倍数有关模块的更多信息,请访问this维基百科页面.

  7. swift – 为什么双字印刷字体不同?

    我不明白为什么编译器从字典中打印值不同?我在Swift3,Xcode8.这是一个bug或一些奇怪的方法优化的东西或东西?编辑更奇怪的是:有些价值观过去了,有的下降了,有些留下来吧!

  8. swift – 如何在NSDecimalNumber中存储1.66

    在右侧是浮点数,不能代表值“1.66”完全正确.一种选择是创建十进制数从一个字符串:另一个选择是使用算术:使用Swift3,您可以考虑使用“叠加值类型”Decimal,例如还有一个选择:

  9. round robin权重轮循算法php实现代码

    这篇文章主要介绍了round robin权重轮循算法php实现代码,需要的朋友可以参考下

  10. js四舍五入数学函数round使用实例

    这篇文章主要介绍了js四舍五入数学函数round使用实例,需要的朋友可以参考下

随机推荐

  1. c# – (wpf)Application.Current.Resources vs FindResource

    所以,我正在使用C#中的WPF创建一个GUI.它看起来像这样:它现在还没有完成.这两行是我尝试制作一种数据表,它们在XAML中是硬编码的.现在,我正在C#中实现添加新的水果按钮功能.我在XAML中有以下样式来控制行的背景图像应该是什么样子:因此,在代码中,我为每列col0,col1和col2创建一个图像,如果我使用以下代码,它添加了一个如下所示的新行:如你所见,它不太正确……为什么一个似乎忽略了一些属性而另一个没有?

  2. c# – 绑定DataGridTemplateColumn

    似乎我已经打了个墙,试图在DataGrid上使用DataTemplates.我想要做的是使用一个模板来显示每个单元格的两行文本.但是似乎无法以任何方式绑定列.以下代码希望显示我想做的事情.注意每个列的绑定:模板列没有这样的东西,因此,这个xaml不可能工作.我注定要将整个DataTemplate复制到每个列,只是对每个副本都有不同的约束?解决方法我不完全确定你想要做什么,但如果您需要获取整行的DataContext,可以使用RelativeSource绑定来移动视觉树.像这样:

  3. c# – 学习设计模式的资源

    最近我来到了这个设计模式的概念,并对此感到非常热情.你能建议一些帮助我深入设计模式的资源吗?

  4. c# – 是否有支持嵌入HTML页面的跨操作系统GUI框架?

    我想开发一个桌面应用程序来使用跨系统,是否有一个GUI框架,允许我为所有3个平台编写一次代码,并具有完全可脚本化的嵌入式Web组件?我需要它有一个API来在应用程序和网页之间进行交流.我知道C#,JavaScript和一些python.解决方法Qt有这样的事情QWebView.

  5. c# – 通过字符串在对象图中查找属性

    我试图使用任意字符串访问嵌套类结构的各个部分.给出以下(设计的)类:我想要从Person对象的一个实例的“PersonsAddress.HousePhone.Number”获取对象.目前我正在使用反思来做一些简单的递归查找,但是我希望有一些忍者有更好的想法.作为参考,这里是我开发的(crappy)方法:解决方法您可以简单地使用标准的.NETDataBinder.EvalMethod,像这样:

  6. c# – 文件下载后更新页面

    FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en&pf=true它呈现该页面,然后使用以下元刷新标签来实际向用户提供要下载的文件:你可能需要在你的应用程序中做类似的事情.但是,如果您真的有兴趣在文件完全下载后执行某些操作,那么您的运气不佳,因为没有任何事件可以与浏览器进行通信.执行此操作的唯一方法是上传附件时使用的AJAXupload.

  7. c# – 如何在每个机器应用程序中实现单个实例?

    我必须限制我的.net4WPF应用程序,以便每台机器只能运行一次.请注意,我说每个机器,而不是每个会话.我使用一个简单的互斥体实现单实例应用程序,直到现在,但不幸的是,这样一个互斥是每个会话.有没有办法创建机器互连,还是有其他解决方案来实现每个机器应用程序的单个实例?

  8. c# – WCF和多个主机头

    我的雇主网站有多个主机名,都是同一个服务器,我们只是显示不同的皮肤来进行品牌宣传.不幸的是,在这种情况下,WCF似乎不能很好地工作.我试过overridingthedefaulthostwithacustomhostfactory.这不是一个可以接受的解决方案,因为它需要从所有主机工作,而不仅仅是1.我也看过thisblogpost,但是我无法让它工作,或者不是为了解决我的问题.我得到的错误是“这

  9. c# – ASP.NET MVC模型绑定与表单元素名称中的虚线

    我一直在搜索互联网,试图找到一种方式来容纳我的表单元素的破折号到ASP.NET的控制器在MVC2,3或甚至4中的默认模型绑定行为.作为一名前端开发人员,我更喜欢在我的CSS中使用camelCase或下划线进行破折号.在我的标记中,我想要做的是这样的:在控制器中,我会传入一个C#对象,看起来像这样:有没有办法通过一些正则表达式或其他行为来扩展Controller类来适应这种情况?我讨厌这样的事实,我必须这样做:甚至这个:思考?

  10. c# – 用户界面设计工具

    我正在寻找一个用户界面设计工具来显示文档中可能的GUI.我不能生成代码.我知道MicrosoftVisio提供了一个功能.但有什么办法吗?您使用哪种软件可视化GUI?

返回
顶部