Math.Round 与 String.Format

2023-11-27

我需要将双精度值四舍五入为 2 位数字。 什么是更好的?

String.Format("{0:0.00}", 123.4567);      // "123.46"
Math.Round(123.4567, 2)                   // "123.46"

Math.Round(double,digits)数字>0在概念上是非常不干净的。但我认为永远不应该使用它。double是二进制浮点数,因此没有明确定义的十进制数字的概念。

我建议使用string.Format, 要不就ToString("0.00")当您只需要舍入以显示小数时,以及decimal.Round如果您需要对实际数字进行四舍五入(例如在进一步计算中使用它)。

注:与decimal.Round你可以指定一个MidpointRounding模式。想要的事情很常见AwayFromZero四舍五入,不ToEven四舍五入。

With ToEven四舍五入0.005m舍入为0.00 and 0.015舍入为0.02。这不是大多数人所期望的。

比较:

  • ToEven:3.75 轮到 3.8
  • ToEven:3.85 轮3.8 (这不是大多数人所期望的)
  • AwayFromZero:3.75 轮至 3.8 轮
  • AwayFromZero: 3.85 回合3.9

欲了解更多信息,请参阅:https://msdn.microsoft.com/en-us/library/system.math.round.aspx

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

Math.Round 与 String.Format 的相关文章

  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • MySQL CHAR() 函数和 UTF8 输出?

    Variable name Value character set client utf8 character s
  • 复杂的 d3.nest() 操作

    我有一个数组 如下所示 var arrays 1 2 3 4 5 1 2 6 4 5 1 3 6 4 5 1 2 3 6 5 1 7 5 1 7 3 5 我想用d3 nest 或者甚至只是标准的 javascript 将此数据转换为我可以使
  • 撤消快捷方式在 Eclipse 中不起作用

    The last couple of days the Ctrl Z shortcut Undo scrolls down a line a la emacs I tried to switch schemes back and forth
  • Python 是否有使用本机小部件的跨平台 GUI 工具包?

    Python 有许多 GUI 工具包 如果我理解正确的话 这些工具包通常负责渲染自己的小部件 而不是依赖操作系统 这实现了跨平台支持 但代价是小部件的外观 感觉和行为不一定与本机对应部件完全相同 Python有跨平台的GUI工具包吗and利
  • kendo-ui 图表类别标签中的换行符

    我有一个图表 其中标签包含两个部分 名称和数字 我希望号码显示在姓名下方 如 br tag I load the contents of the chart and set the label in my controller 当我尝试在标
  • 在 Python 中使用多处理和请求并行发布请求

    我有小代码片段如下 import requests import multiprocessing header X Location UNKNOWN X AppVersion 2 20 0 X UniqueId 2397123 X User
  • 如何确定数据点的两个分区(聚类)是否相同?

    I have n某个任意空间中的数据点 我将它们聚类 我的聚类算法的结果是一个由 int 向量表示的分区l长度n将每个点分配给一个簇 的价值观l范围从 0 到 可能 n 1 Example l 1 1 1 1 0 0 2 6 是一个分区n
  • 如何改变设计以使实体不使用注入?

    我读过并开始意识到 带有注入的实体 数据对象 用于 JPA 或序列化 是一个坏主意 这是我当前的设计 所有适当的字段都有 getter 和 setter 并且serialVersionUID为了简洁起见 我放弃了 这是父对象 是实体组合图的
  • Delphi中如何实现并行循环?

    如何在Delphi Delphi 200X Delphi XE 中实现并行循环 如何最好地做到这一点 有没有通用的解决方案 请举例说明 目前最好的解决方案可能是 Parallel For Loop 构造全线程库 您向它传递一个集合或一对表示
  • 使用 TSC(时间戳计数器)进行时间计算

    我正在尝试通过 Linux 内核模块以非常高的精度测量 Linux 内核中某些代码所花费的时间 为了这个目的 我曾尝试过rdtscl 它给出了代码中使用的时钟滴答数 如下所示 unsigned long ini end rdtscl ini
  • 如何在 Angular 4 中对齐左右文本 mat-card-header?

    我需要将标题中的文本内容对齐标题标记的左侧和右侧 我尝试了不同的想法 但没有一个适合我 帮我 div style width 40 div
  • 量角器切换到上一个选项卡

    打开新选项卡 第二个 后 我尝试切换到第一个选项卡 common clickOpenNewSession it opens the new tab browser getAllWindowHandles then function hand
  • 在 Java ME 中将 JSON 字符串转换为对象?

    Java J2ME中有没有办法转换字符串 例如 name MyNode width 200 height 100 在一行代码中转换为相同的内部对象表示 因为目前的方法太繁琐了 Object n create new setString p
  • Clojure Web 应用程序的良好 Web 服务器/Servlet 容器?

    我正在为我的 compojure Web 应用程序寻找一个好的生产 Web 服务器 servlet 容器 对于使用 compojure 的 Clojure Web 应用程序 使用 Jetty 或 Tomcat 或其他服务器有何优缺点 有没有
  • IIS ASP.Net 网站 - ManagedPipelineHandler 错误(尝试在不存在的网络连接上执行操作)

    我遇到一个奇怪的问题 我有一个使用表单身份验证的 ASP Net Web 应用程序 如果我打开登录页面并且有几分钟处于非活动状态 则登录尝试超时或 IE FireFox 显示 无法显示此页面 如果没有暂停或缺乏活动 则没有问题并且网站按预期
  • 如何在 LLVM 中打印字符串

    我想将 LLVM 中的指令打印到字符串而不是屏幕上 我用I gt print errs 打印到屏幕上 我怎样才能将指令放入字符串中 像这样 std string str llvm raw string ostream rso str I g
  • 如何停止Memo控件的自动滚动?

    在 Windows 7 中 备忘录控件 TMemo 插入文本后会自动滚动 Memo Lines Add Path 这是我不想要的 因为滚动是我自己完成的 如何停止自动滚动 通常 向备忘录控件添加文本会将备忘录滚动到插入文本的底部 为了防止这
  • Objective-C 接口、委托和协议

    因此 我试图了解 Objective C 接口 委托和协议 所以我有一个问题 委托是否必须位于单独的文件中 或者可以是类中定义的方法吗 协议类似于java接口吗 这就是我目前的理解方式 如果你使用这个协议 它基本上会让你实现方法 我仍然对接
  • 外键与辅助键

    我曾经认为外键和辅助键是同一个东西 谷歌搜索后 结果更加令人困惑 有些人认为它们是相同的 另一些人则说辅助键是一个不必是唯一的索引 并且允许比主键更快地访问数据 有人可以解释其中的区别吗 或者这确实是一个混合术语的情况 每个数据库类型可能有
  • Math.Round 与 String.Format

    我需要将双精度值四舍五入为 2 位数字 什么是更好的 String Format 0 0 00 123 4567 123 46 Math Round 123 4567 2 123 46 Math Round double digits 数字