.NET Math.Round(,,MidpointRounding.AwayFromZero) 无法正常工作

2024-01-09

我使用的是 Visual Studio Professional 2012。 我创建了一个新的 C# ConsoleApplication,针对 .NET Framework 4.5,代码如下:

    static void Main(string[] args)
    {
        double x = 2.44445;
        double y = Math.Round(x, 4, MidpointRounding.AwayFromZero);
        Console.WriteLine(y);
        Console.ReadKey();
    }

预期结果应为 2.4445,但实际返回 2.4444。 //与之前的框架版本结果相同,我尝试了VCE2010。

我知道这样的问题通常是由双精度数据类型的存储方式引起的(即有限小数转换为无限二进制分数)。但我没想到只有 5 位小数就会发生这种情况,比如 2.44445

我担心这样的事情是否会发生在更短的小数位上。我还想学习一种在 C# 中进行舍入的更安全的方法(使用远离零的约定)。 谢谢。


这确实是由于浮点数的精度脆弱造成的。 0.5 可以完美地存储在 IEEE 浮点中,但 0.45、0.445 等则不能。例如,指定 2.44445 时存储的实际值是 11009049289107177/4503599627370496,即 2.44449999999999989519494647...现在应该很明显为什么数字会这样舍入。

如果您需要精确存储小数,请考虑使用decimal改为键入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET Math.Round(,,MidpointRounding.AwayFromZero) 无法正常工作 的相关文章

  • 将 Stream 反序列化为 List 或任何其他类型

    尝试将流反序列化为List
  • 使用API​​隐藏程序标题栏

    它可以使用 c 和 windows api 删除窗口控制台标题栏 如果是的话如何 请 这个简单的应用程序隐藏并显示其所在控制台的标题栏 它会立即将控制台标题更改为 guid 以查找窗口句柄 然后 它使用 ToggleTitleBar 使用找
  • 为什么这个函数指针赋值在直接赋值时有效,但在使用条件运算符时无效?

    本示例未使用 include 在 MacOS10 14 Eclipse IDE 上编译 使用 g 选项 O0 g3 Wall c fmessage length 0 假设这个变量声明 int fun int 这无法通过 std touppe
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 导出类时编译器错误

    我正在使用 Visual Studio 2013 但遇到了一个奇怪的问题 当我导出一个类时 它会抛出 尝试引用已删除的函数 错误 但是 当该类未导出时 它的行为会正确 让我举个例子 class Foo note the export cla
  • 如何在 Asp.net Gridview 列中添加复选框单击事件

    我在 asp 中有一个 gridview 其中我添加了第一列作为复选框列 现在我想选择此列并获取该行的 id 值 但我不知道该怎么做 这是我的 Aspx 代码
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari
  • 我可以仅在少数情况下关闭模拟吗

    我有一个始终使用模拟的应用程序 但是 当用户以管理员身份登录时 一些操作需要他们写入服务器本身 现在 如果这些用户在实际服务器上没有权限 有些用户没有 则不会让他们写入 我想做的是关闭几个命令的模拟 有没有办法做这样的事情 using Ho
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 格式化货币

    在下面的示例中 逗号是小数点分隔符 我有这个 125456 89 我想要这个 125 456 89 其他示例 23456789 89 gt 23 456 789 89 Thanks 看看这个例子 double value 12345 678
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 使用 foreach 循环和 XmlNodeList C# 将新节点附加到节点列表

    目前我处理的是这样的XML类型 XML FILE http 20drive google com open id 0By5BxgNi9eGcRldxcEZNU0FDTzQ 参考XML文件 我想检查一个节点 如果找不到该节点 我必须将该节点附
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • C++ [Windows] 可执行文件所在文件夹的路径[重复]

    这个问题在这里已经有答案了 我需要访问一些文件fstream在我的 Windows 上的 C 应用程序中 这些文件都位于我的exe文件所在文件夹的子文件夹中 获取当前可执行文件的文件夹路径的最简单且更重要的 最安全的方法是什么 Use 获取
  • g++ C++0x 枚举类编译器警告

    我一直在将可怕的 C 类型安全伪枚举重构为新的 C 0x 类型安全枚举 因为它们是way更具可读性 不管怎样 我在导出的类中使用它们 所以我明确地将它们标记为导出 enum class attribute visibility defaul
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec

随机推荐

  • wxPython:wx.PyControl可以包含wx.Sizer吗?

    Can a wx PyControl包含一个wx Sizer 请注意 我最终想要在这里做的事情 具有浮点值的旋转器 已经在另一个问题中得到了回答 我对在 a 中布局小部件特别感兴趣wx PyControl如果我需要制作自己的自定义小部件 这
  • 上传文件时发生 Curl 错误“创建表单数据失败”

    当我尝试使用 php 和curl 上传文件时 出现错误 创建表单数据失败 我知道当文件路径不正确时会发生错误 test php postcontent files test jpg test php 和 test jpg 在同一文件夹中 但
  • 解析用户对象ACL

    我是解析新手 对解析用户 表 中数据的安全性有疑问 我想将附加数据与用户数据一起存储 例如 电话号码 但默认情况下 解析将用户表设置为任何人都具有读取权限 因此 如果有人点击我的解析 api 他们将能够获得所有用户及其电话号码的列表 显然这
  • 将基本 Cocoa 应用程序转换为基于文档的应用程序

    我和我的团队一直在开发一个现有的 非基于文档的 Cocoa 应用程序 这是我们的第一个 Cocoa 应用程序 尽管到目前为止我们已经开发了许多 iOS 应用程序 不过 该应用程序确实应该是基于文档的 因此我已经开始尝试对其进行转换 但这里和
  • Sphinx:同一图形可能有不同的相对路径吗?

    我是狮身人面像新手 想在两个不同的版本中显示相同的图形 rst files 第一个 rst 文件 lower rst 与 figures 文件夹位于同一级别 我在其中包含一个图形 如下所示 figure figures figure1 pn
  • 模数除法如何工作

    我不太明白模数除法是如何工作的 我在计算27 16并结束了11我不明白为什么 我似乎无法在网上找到通俗易懂的解释 有人可以详细说明这里发生了什么吗 大多数解释都遗漏了一个重要步骤 让我们用另一个例子来填补空白 鉴于以下情况 Dividend
  • 启动进程的服务不会显示 GUI C#

    嘿 我正在尝试获取服务来启动我的程序 但它没有显示 GUI 该过程开始 但没有显示任何内容 我尝试启用 允许服务与桌面交互 但仍然不起作用 我的程序是一个计算机锁定设备 用于阻止未经授权的用户访问计算机 我正在运行带有 64 位操作系统的
  • 在 Mac 应用程序中执行 AppleScript 文件?

    我正在寻找一种从 Mac 应用程序中执行 Applescript 文件的方法 我以前制作过使用的 mac 应用程序NSAppleScript script NSAppleScript alloc initWithSource MY CODE
  • 识别某人正在玩的游戏而无需聊天(discord bot python)

    不和谐机器人蟒蛇 代码是 如果有人聊天 如果这个人正在玩 守望先锋 他或她将被提升为玩家角色 如果没有 他或她将被删除或什么也不会发生 但我正在寻找一种无需聊天即可识别正在玩的游戏的方法 有人能帮我吗 client event async
  • 在 PHP 中组合图像同时保留透明度

    看看这里 我想删除蓝色部分末端的白色东西 但我尝试了很多不同的方法 但都不起作用 如果需要 可以在以下位置找到 pnghttp tyilo jbusers com PNG http tyilo jbusers com PNG 文件夹 htt
  • Owl Carousel 2 - 如何获取当前物品?

    我正在使用 Owl Carousel 2 开发一个网站 我只想检测哪个项目显示在前面 以前是这样的 http owlgraphic com owlcarousel demos owlStatus html http owlgraphic c
  • 从不同文件夹加载 Jar 文件

    我目前正在制作 Minecraft Mod Loader package spideyzac import java util concurrent CopyOnWriteArrayList import org lwjgl opengl
  • 无法将 Enumerable.Count 与 List 一起使用,编译器假定为 List.Count

    我还没有注意到这种行为 也许是因为我更喜欢 VB NET 中的查询语法并将查询和执行方法拆分为不同的语句 如果我尝试编译以下简单查询 Dim wordList As List Of String New List Of String Dim
  • 如何使用spring mvc使用@RequestParam捕获多个参数?

    假设单击一个超链接并使用以下参数列表触发一个 urlmyparam myValue1 myparam myValue2 myparam myValue3 现在我如何使用捕获所有参数 RequestParam在 Spring MVC 中 我的
  • Firefox/Chrome 上的字体大小和缩进不一致

    Demo http jsfiddle net waitinforatrain 9JU5b http jsfiddle net waitinforatrain 9JU5b I m trying to make a notification i
  • 关于 iOS 本地化

    在以下文档中 http developer apple com library mac documentation MacOSX Conceptual BPInternational Articles LanguageDesignation
  • Maven打包有效pom

    我有一个带有许多子模块的 Maven 项目 其中一些子模块打包为 jar 并部署到 Nexus Maven 存储库 我遇到的问题是打包的 jar 引用了不一定部署的父 pom 有没有办法让Maven部署有效的pom而不是pom xml 您需
  • 使用 Swift 录制视频 avfoundation 时我做错了什么?

    我正在用 AVFoundation 快速录制视频 但看不到 file mp4 我不知道我是否正在录制并且保存得不好 或者我没有录制 因为我可以显示会话预览 所以所有组件都使其功能正确 我的代码是 import UIKit import AV
  • 如何将 Firebase 数据实时更新到 React 应用程序

    我正在开发一个将 Firebase 数据实时更新为 React 的应用程序 我想要做的是 用户更新应用程序中的状态 同时应该为另一个用户更新状态 我已经构建完成 但它不断渲染renderStatus 而且速度太慢了 我想在 RDB 数据更新
  • .NET Math.Round(,,MidpointRounding.AwayFromZero) 无法正常工作

    我使用的是 Visual Studio Professional 2012 我创建了一个新的 C ConsoleApplication 针对 NET Framework 4 5 代码如下 static void Main string ar