.NET 中小数、浮点和双精度之间的区别?

2024-04-10

有什么区别decimal, float and double在.NET 中?

什么时候有人会使用其中之一?


float(C# 别名为System.Single) and double(C# 别名为System.Double) are 漂浮的binary点类型 http://csharpindepth.com/Articles/General/FloatingPoint.aspx. float是 32 位;double是 64 位的。换句话说,它们代表这样的数字:

10001.10010110011

二进制数和二进制小数点的位置都编码在该值内。

decimal(C# 别名为System.Decimal) is a 漂浮的decimal点型 http://csharpindepth.com/Articles/General/Decimal.aspx。换句话说,它们代表这样的数字:

12345.65789

再次,数量和位置decimal点都被编码在值中——这就是为什么decimal仍然是浮点类型而不是定点类型。

需要注意的重要一点是,人类习惯于以十进制形式表示非整数,并期望以十进制表示形式得到精确的结果;并非所有十进制数都可以精确地用二进制浮点表示 - 例如 0.1 - 因此,如果您使用二进制浮点值,您实际上会得到 0.1 的近似值。使用浮动小数点时,您仍然会得到近似值 - 例如,无法精确表示 1 除以 3 的结果。

至于什么时候用什么:

  • 对于“自然精确的小数”的值,最好使用decimal。这通常适用于人类发明的任何概念:财务价值是最明显的例子,但也有其他的例子。例如,考虑给潜水员或滑冰运动员的分数。

  • 对于更多无法真正测量的自然产物的价值exactly反正,float/double更合适。例如,科学数据通常以这种形式表示。在这里,原始值一开始就不是“十进制精确度”,因此对于预期结果来说保持“十进制精度”并不重要。浮点二进制点类型的处理速度比小数要快得多。

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

.NET 中小数、浮点和双精度之间的区别? 的相关文章

  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 解决找不到程序集的问题 |文件未找到异常 |融合日志

    我正在尝试将我的解决方案包 wsp 部署到 SharePoint 2007 环境 WSP 包含一个功能 该功能加载功能接收器类以在运行时部署计时器作业 在部署此 WSP 时 我不断得到 特征 fb631f6c 2c46 4ab5 b7b3
  • 如何获取Winforms窗体标题栏高度的大小?

    因此 如果它是工具窗口或可最小化的表单 我希望能够以编程方式获取其高度 这可能吗 如果是这样怎么办 您可以使用以下方法确定工具窗口和普通表单的标题栏高度 Rectangle screenRectangle this RectangleToS
  • 在 .Net 托管的 IronPython 脚本中设置和获取变量

    我正在尝试使用 Net 控制台应用程序中托管的 IronPython 来构建验证规则引擎的原型 我已经将脚本精简到我认为的基础内容 var engine Python CreateEngine engine Execute from Sys
  • 为什么 Go 中只有 int 而没有 float?

    在 Go 中 有这样的类型int这可能相当于int32 or int64取决于系统架构 我可以声明一个整数变量而不用担心它的大小 var x int 为什么没有这个类型float 这相当于float32 or float64取决于我的系统架
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • 如何等待远程 .NET 调试器连接

    今天我遇到了一个问题 我需要远程调试程序 该程序是从另一个系统启动的 所以我真的没有机会在命令行上与它交互 不过我可以很容易地改变它的来源 我需要做的是让程序正常启动 然后等待我用调试器附加到它 我想不出一个让我快乐的方法 我确实发现了这个
  • .NET“默认行终止符”?

    有什么方法可以弄清楚 NET 使用什么作为其 默认行终止符 例如 StringBuilder AppendLine String 的文档表示 附加指定字符串的副本 后跟默认行终止符 NET 中的几个与文本相关的类引用相同的概念 有什么方法可
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • 如何根据给定的点生成热图

    我想生成 Windows 形式的热图 我有一组点作为输入 如何以最简单的方式做到这一点 谢谢 基于此处已有的答案 此方法允许您指定Colors您希望用作最大和最小颜色 private Color HeatMapColor double va
  • SQLite .NET 性能,如何加快速度?

    在我的系统上 约 86000 个 SQLite 插入需要长达 20 分钟 意味着每秒约 70 个插入 我要做数百万 我怎样才能加快速度 对每一行的 SQLiteConnection 对象调用 Open 和 Close 会降低性能吗 交易有帮
  • 抛出并保留堆栈跟踪不符合代码分析所描述的预期

    进行代码分析给了我项目 CA2200 CA2200 重新抛出以保留堆栈详细信息 func 重新抛出捕获的异常并将其显式指定为参数 请改用不带参数的 throw 以保留最初引发异常的堆栈位置 我已经实现了该建议 但无论如何我似乎都得到了相同的
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我

随机推荐

  • Android:如何将先前的 Activity Intent 传递到列表视图中

    我有两项活动 Activity A Activity B In Activity A我有一个EditText Button and Image View And in 活动B我有一个Listview和 listView 视图包含 Custo
  • Sql 优化:Xml 或分隔字符串

    希望这只是一个简单的问题 涉及 Sql 2008 中的查询时的性能优化 我曾在一些公司工作过 这些公司在 ETL 流程以及一些网站中大量使用存储过程 我见过这样的场景 他们需要根据一组有限的键值检索特定记录 我已经看到它以 3 种不同的方式
  • Firebase 在服务器配置中不断抛出 OAuth2 客户端 ID 未找到

    我正在尝试使用 Firebase 将我的 Google 用户登录到我的应用程序 但每次使用以下方法时 都会收到此错误 An internal error has occured OAuth2 client id in server conf
  • 将 aar 文件发布到 Maven Central,Gradle 不起作用

    将 aar 文件发布到 Maven Central Gradle 仍然无法工作 好吧 让我们重复我遵循的所有步骤来设法 使用 Gradle 将 aar 文件发布到 Maven Central 我主要遵循这个guide https githu
  • 是否可以重定向用户以启动扫描仪应用程序?

    我正在编写一个应用程序来显示上传的文档python3 django 1 8 1 我们还希望允许用户扫描文档 如您所知 javascript 中有一个打印对话框 window print 浏览器是否支持扫描文档 是否可以使用 javascri
  • 在 C++ 中检查向量的所有元素是否相等

    如果我有一个值向量并且想要检查它们是否都相同 那么在 C 中有效执行此操作的最佳方法是什么 如果我用其他语言 例如 R 进行编程 我的想法是仅返回容器的唯一元素 然后如果唯一元素的长度大于 1 我知道所有元素不可能相同 在 C 中 可以这样
  • 如何使用 PHP 创建 .gz 文件?

    我想使用 PHP 在我的服务器上 gzip 压缩文件 有人有一个输入文件并输出压缩文件的例子吗 这段代码可以解决问题 Name of the file we re compressing file test txt Name of the
  • 非常简单的文件附加器日志记录不起作用

    这是我的 web config 信息
  • ScrollView 中的 ViewPager

    我需要有一个ViewPager里面一个ScrollView but ViewPager只是在进入时不会出现ScrollView 当我不使用时一切正常ScrollView 我在 stackoverflow 或其他网站上看到了一些类似的问题 所
  • BASH:如何在循环中创建动态数组名称

    这是我尝试过的 n 0 for i in aaa bbb ccc do array i n date N n done n 0 for i in aaa bbb ccc do echo array i n n done 有什么想法如何使动态
  • 找不到命名空间错误

    我有以下设置 enums ts export enum DocumentType Email 0 Unknown 1 remote ts
  • 用 C 语言实现 FIFO 队列

    对于嵌入式应用程序 我尝试使用 ANSI C 实现先进先出 FIFO 结构队列 最直接的方法似乎是通过实现链表 以便每个结构包含指向队列中下一个的指针 因此我将结构本身定义为 typedef enum LED on LED off etc
  • 错误:尝试使用 id==grid1 注册小部件,但该 id 已注册

    我目前正在开发我的个人网站我对我的网站的一部分有一个偏见 即避免重复代码 这个视图我有一个 dojox grid datagrid 我可以在同一页面中调用此视图两次 ruban phtml 问题是我单击 1 个按钮 这是该视图 部分视图 的
  • 如何在Matlab中找到连通分量?

    数组A 2 3 2 5 4 8 5 6 7 8 我想得到的结果为 conidx 2 3 5 6 和 4 7 8 2 3 的值之一存在于第二行 2 5 的值之一存在于第 4 行 因此 2 3 2 5 和 5 6 连接起来 最后我可以得到连接索
  • 打字稿错误“无法写入文件...因为它会覆盖输入文件。”

    在 Visual Studio 2015 Update 3 中的 Typescript 2 2 1 项目中 我在错误列表中收到数百个错误 例如 无法写入文件 C my project node modules buffer shims in
  • 将图形对象转换为位图

    我的图形对象确实有以下问题 EDIT 我有一个图片框图像 图像RxTx 这是来自摄像机的实时流 我在绘制事件中所做的就是在图像 imageRxTx 上绘制一些线条 下面的代码中未显示 到目前为止 这没有问题 现在我需要检查 imageRxT
  • 如何找到距离原点最近的坐标?

    我知道有很多关于按多个值对 javascript 数组进行排序的问题 但没有一个答案解决了我的问题 我有一个坐标数组 例如 x y 10 20 12 18 20 30 5 40 100 2 如何获取距离原点最近的坐标 使用以下方法计算每个点
  • 快速多重替换为字符串

    我有一个如下所示的字符串 A jahshs b jwuw c wuqjwhaha d e f jsj g 我需要更换每一个 x 用不同的字符串 问题来了 因为这个过程将重复大约 1000 次 秒 所以我需要一种优化 快速的方法来完成它 任何
  • 如何优化 HTML 表格中的多个重复图像

    我正在生成一个大型 HTML 表格 并且对许多单元格使用图像 例如 一列可能具有拇指向上的图像或拇指朝下的图像 如果我有 300 行 其中 200 行竖起大拇指 那么它们都有 a href link img src http myserve
  • .NET 中小数、浮点和双精度之间的区别?

    有什么区别decimal float and double在 NET 中 什么时候有人会使用其中之一 float C 别名为System Single and double C 别名为System Double are 漂浮的binary点