在 .net 中,如何在 Decimal 和 Double 之间进行选择

2024-04-12

前几天我们在工作中讨论了这个问题,我希望有一个 Stackoverflow 问题我可以向人们指出,所以就在这里。)

  • 和有什么区别Double http://msdn.microsoft.com/en-us/library/x99xtshc(VS.71).aspx and a Decimal http://msdn.microsoft.com/en-us/library/system.decimal(VS.71).aspx?
  • 什么时候(在什么情况下)你应该always use a Double?
  • 什么时候(在什么情况下)你应该always use a Decimal?
  • 什么是需要考虑的驱动因素如果不属于上述两个阵营之一呢?

有很多问题与这个问题重叠,但他们倾向于问在特定情况下应该做什么,而不是在一般情况下如何决定。


我通常会想natural vs 人造的数量。

自然量是指重量、高度和时间等。这些永远不会被绝对准确地测量,并且很少有任何绝对精确算术的想法:您通常不应该将高度相加,然后确保结果完全符合预期。使用double对于这种数量。双打的范围很大,但精度有限;它们的速度也非常快。

占主导地位的人工数量是货币。有这样一个东西,“正好是 10.52 美元”,如果你加上 48 美分,你预计正好有 11 美元。使用decimal对于这种数量。理由:鉴于它一开始就是人为的,所涉及的数字也是人为的,旨在满足人类的需求 - 这意味着它们自然地以 10 为基数表示。使存储表示与人类表示相匹配。decimal没有范围double,但大多数人工量也不需要这个额外的范围。它也比慢double,但我个人有一个银行帐户,它给我正确答案的速度比快速给出错误答案的速度慢:)

有关更多信息,我有关于.NET 二进制浮点类型 http://pobox.com/~skeet/csharp/floatingpoint.html.NET 十进制类型 http://pobox.com/~skeet/csharp/decimal.html。 (注意decimal也是浮点类型 - 但所讨论的“点”是小数点,而不是二进制点。)

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

在 .net 中,如何在 Decimal 和 Double 之间进行选择 的相关文章

  • Windows 窗体中的标准 Windows 菜单栏

    我注意到添加了一个MenuStrip 来自工具箱 我的表单设计不会产生像许多本机 Windows 应用程序中那样的菜单栏 相反 我得到了一个像 Visual Studio 自己的菜单栏 没有任何样式设置MenuStrip似乎模仿了更常见的本
  • 运算符“">”不能应用于类型“ulong”和“int”

    我很好奇为什么 C 编译器只为第二个 if 语句提供错误消息 enum Permissions ulong ViewListItems 1L public void Method int mask 138612833 int compare
  • .NET EXE 内存占用

    即使是一个简单的Notepad http en wikipedia org wiki Notepad 28software 29C 中的应用程序消耗兆字节的 RAM 如任务管理器中所示 最小化应用程序时 任务管理器中的内存大小会显着下降 并
  • 如何强制我的 .NET 应用程序以管理员身份运行?

    一旦我的程序安装在客户端计算机上 如何强制我的程序以管理员身份运行Windows 7的 您需要修改嵌入到程序中的清单 这适用于 Visual Studio 2008 及更高版本 项目 添加新项目 选择 应用程序清单文件 改变
  • 序列化和反序列化 HttpRequestMessage 对象

    有人有序列化 HttpRequestMessage 对象的经验吗 尝试使用 Json net 它部分有效 也就是说 JsonConvert DeserializeObject 由于 StringContent 构造问题而失败 无法找到用于类
  • ThreadPool.SetMinThreads 不创建任何新线程

    我想弄清楚到底有什么影响ThreadPool SetMinThreads makes 根据官方文档 https learn microsoft com en us dotnet api system threading threadpool
  • Windows DPAPI - 如何处理熵?

    我正在使用 Windows DPAPI 来加密一些敏感数据 密码存储在注册表中 这一切都运行良好 但我想知道是否有人可以澄清我对 NET 中 可选 提供给 ProtectedData Protect 的 熵 字节的理解 熵 字节数组似乎类似
  • 即使进程确实存在,为什么 Process.WaitForExit 也会抛出“无进程”异常?

    我有一个包含以下代码的 Windows 服务 public static void ExtractTextInner string source string destination ProcessStartInfo startInfo n
  • LINQ to Entities 区分大小写的比较

    这不是 LINQ to Entities 中区分大小写的比较 Thingies First t gt t Name ThingamaBob 如何使用 LINQ to Entities 实现区分大小写的比较 那是因为你正在使用LINQ 实体最
  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 我的 .NET 库列表中缺少 System.Windows.Data

    您好 我想使用 System Windows Data IValueConverter 但是当我尝试在 VS2010 中添加对 System Windows Data 的引用时 我只看到 System Windows Forms 和 Sys
  • 为标签生成成员:我有什么理由应该这样做?

    我在这里读过另一篇文章 因此 如果可能的话 您不应该为标签生成成员 我想知道有什么潜力缺点到这会是 我说的好处是性能提高 对吗 还要别的吗 我有一个带有 100 个标签的 winform 应用程序 不产生成员有什么好处 还是只有在 Web
  • MongoDb 注册类映射

    我有以下代码 我希望 MiscellaneousData 覆盖抽象的 MiscellaneousDataBase 然而 IdMemberMap 总是出现空值 使用独立的 正常 类是可行的 if BsonClassMap IsClassMap
  • 如何捕获一个 int

    我正在使用 IL 抛出一个 Int32 并捕获它 这只是出于好奇 我并没有试图实现任何目标 所以请不要告诉我抛出异常而不是 int method private hidebysig static void Main string args
  • WPF 如何从 DataTemplate 访问控件

    我有一个包含网格的数据模板 网格内有一个组合框
  • ASP.NET MVC:如何可靠地获取当前请求的真实URL?

    现在我有一个 MVC 应用程序运行在http 127 0 0 1 8081 http 127 0 0 1 8081 它实际上在 Azure 计算模拟器中运行 浏览器位置栏清楚地显示端口号为 8081 然而 Request Url and R
  • 在后台进程中访问 WPF FlowDocument

    在后台访问 WPF FlowDocument 我的问题涉及在 WPF 后台访问 UI 对象 我见过几十个示例应用程序 它们都很简单 易于理解 其中 95 告诉你如何显示进度条 这并不是我想要的 我的问题是这样的 我想通过访问 RichTex
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解

随机推荐

  • android 编辑文本背景

    我想设置为我的 EditText背景 http img9 imageshack us f backgroundtext png 嗯 我也不知道该怎么解释 当有大量文本时垂直滚动启用 当用户滚动文本时 我需要 滚动 背景 现在我知道 当用户滚
  • 如何从 Firebase 中的 Android 应用创建空表? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在 Android 平台上开发实时应用程序 我想在 Firebase 数据库中添加一个具有特定名称且没有信息的表 这可能吗 我该怎
  • 无法加载 ResolveComReference 任务

    Win7 VS2017 ASP Net core应用程序 目标框架是4 6 当我尝试使用 CLI 构建项目时 在调用 dotnet 命令之前需要它 会发生错误 C Microsoft Common CurrentVersion target
  • NanoScroller 不触发自身

    下面的代码应该能够触发pane and slider适当地displaycss 属性根据纳米滚动文档 http jamesflorentino github com nanoScrollerJS 但是 滚动条不显示slider直到我在浏览器
  • 连接两个php变量

    我从这样的表单中获取文本和颜色 代码在管理 php
  • Android Content Provider 的实例化顺序

    对于我的应用程序 我需要先启动一个内容提供程序 据我所知 该顺序与 AndroidManifest 中的顺序无关 并且不是按字母顺序排列的 如何控制 Android 调用 Content Provider 的 onCreate 方法的顺序
  • 如何使用 Open XML SDK 将文本插入内容控件

    我正在尝试开发一种解决方案 该解决方案从 ASP Net 网页获取输入并将输入值嵌入到 MS Word 文档中的相应内容控件中 MS Word 文档还具有静态数据 以及一些要嵌入到页眉和页脚字段中的动态数据 这里的想法是解决方案应该基于 W
  • Bamboo 能否将 HTTP 400 Bad 请求解释为失败

    我们正在使用 CURL 向我们的应用程序之一发出外部 API 请求 如果该请求返回的值不是 200 我们希望ebamboo 的 构建 失败 目前 它正在过去 此外 响应中的消息中包含 错误 一词 我希望 Bamboo 能够解析脚本结果并根据
  • 为什么添加文本会改变 div 的边距[重复]

    这个问题在这里已经有答案了 我不明白为什么添加文本 do a div 似乎会改变浏览器解析 div 的方式 看起来边距顶部已更改 但事实并非如此 HTML div div class nav left left div div class
  • Mongo - 更新嵌套数组中的元素[重复]

    这个问题在这里已经有答案了 我有一个看起来像的文档 id 123xyz profile emails address email protected cdn cgi l email protection primary true addre
  • 在 HTML 中呈现字符串并保留空格和换行符

    我有一个带有详细信息页面的 MVC3 应用程序 作为其中的一部分 我有一个包含空格和换行符的描述 从数据库检索 当它被渲染时 新行和空格将被 html 忽略 我想对这些空格和新行进行编码 以便它们不会被忽略 你是怎样做的 我尝试了 HTML
  • NodeJS - 大量请求关闭后“套接字挂起”

    我已经被这个 套接字挂断 错误困扰了几天 我希望有人可以帮助我 我目前设置了两个 Node 程序 Node 中的 HTTP 服务器对每个节点都使用相同的数据进行响应 要求 HTTP 服务器响应来自 HTTP 服务器 1 的数据 对于每个请求
  • 为什么当某些内容已加载时 jQuery 会丢失“事件”(点击)?

    当我在侧边栏上选择页面时 我尝试使用下一个脚本加载内容 该脚本运行没有问题 if Modernizr history var newHash wrapperTag main content contentTag main content i
  • JPA/Hibernate:我可以有一个没有注释的父级和一个带有注释的子级吗?

    我需要创建一个可以独立使用或在更大的应用程序中使用的组件 独立使用时 它不需要数据库 也不需要任何数据库 ORM 相关的依赖项 当用作较大应用程序的一部分时 某些类确实会通过 JPA Hibernate 持久保存到数据库中 我认为组件中的域
  • 是否可以在Windows CE 5.0浏览器中查看部署在IIS 6.0上的silverlight或asp.net 3.5网站?

    我计划在 silverlight 中构建一个网站并将其部署在 IIS 6 0 上 我不知道 是否可以在Windows CE 5 0浏览器中浏览该应用程序 如果不可能的话 查看 silverlight 应用程序比查看 asp net 3 5
  • 使用 haskell Pipes-bytestring 按行迭代文件

    我正在使用管道库 需要将 ByteString 流转换为行流 即String 使用 ASCII 编码 我知道还有其他库 Pipes Text 和 Pipes Prelude 也许可以让我更轻松地从文本文件中生成行 但是由于其他一些代码 我需
  • Python GUI 在整个过程完成之前不会更新

    我有一个进程从目录中获取文件并将它们放入列表中 然后它循环迭代该列表 循环的最后一行是它应该更新我的 gui 显示的位置 然后它再次从列表中的下一项开始循环 我的问题是 在整个过程完成之前 它实际上不会更新 gui 这取决于列表的大小 可能
  • 在 slickgrid 上调用排序

    在 slickgrid 中 我可以使用以下命令设置排序列及其排序方向grid SetSortColumn colName true false 这仅设置排序字形 但不进行排序 有没有办法调用排序事件处理程序 我已经定义了排序处理程序 例如g
  • 析构函数应该是线程安全的吗?

    我正在查看遗留代码并发现以下片段 MyClass MyClass EnterCriticalSection cs Access Data Members NO Global members are being accessed here L
  • 在 .net 中,如何在 Decimal 和 Double 之间进行选择

    前几天我们在工作中讨论了这个问题 我希望有一个 Stackoverflow 问题我可以向人们指出 所以就在这里 和有什么区别Double http msdn microsoft com en us library x99xtshc VS 7