当前位置: 首页 > 知识库问答 >
问题:

C#decimal.epsilon

韦高阳
2023-03-14

为什么decimal数据类型没有epsilon字段?

根据手册,十进制值的范围为±1.0×10e-28到±7.9×10e28。

double.epsilon的说明:

decimal Decimal_Epsilon = new decimal(1, 0, 0, false, 28); //1e-28m;
  • C#中的小数误解?
  • 十进制可以表示的第二个最小值是什么?

下面是一个例子,其中epsilon很有用。

假设我有一个来自某个抽样集的值的加权和,以及所取样本的权重(或计数)的和。现在我要计算加权平均值。但我知道权重(或计数)之和可能还是零。为了防止被零除,我可以执行,如果...else...并检查零。或者我可以这样写:

T weighted_mean = weighted_sum / (weighted_count + T.Epsilon)
T weighted_count = T.Epsilon;

共有1个答案

阎伟志
2023-03-14

与这个定义相反,epsilon实际上是一个用来消除值的二进制和十进制表示之间转换的歧义性的概念。例如,decimal中的0.1没有简单的二进制表示,因此当您将double声明为0.1时,实际上是将该值设置为二进制的近似表示。如果你把这个二进制表示数加10次(数学上),你得到一个大约是1.0的数字,但不完全是。一个ε会让你捏造数学,说0.1的近似表示加到它自己上,可以被认为等价于0.2的近似表示。

十进制值类型已经是十进制表示形式,而不需要由表示形式的性质引起的这种近似值。这就是为什么任何时候你需要处理实际数字和本身不是近似值的数字(即货币,而不是质量),正确的浮点类型使用十进制而不是双倍。

 类似资料:
  • const 作用 修饰变量,说明该变量不可以被改变; 修饰指针,分为指向常量的指针(pointer to const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员函数,说明该成员函数内不能修改成员变量。 const 的指针与引用 指针 指向常量的指针(p

  • 超多电子书与视频资料分享 分享一些面试相关的问题,欢迎关注个人微信公众号:C语言与CPP编程 直接点击电子书书名就可以下载欢迎 Star 支持star,一个人在维护这个仓库,很多书需要一步步慢慢上传,只能在闲暇时间慢慢更新,一个人的力量是有限的,请谅解一下。如果没有您要用的书,可以加一下个人微信(cyuyan2020),注明来意,我会慢慢添加上去的。 1 C语言 征服C指针 提取码:wwcd 经典

  • 主要内容:安装,C/C++ 接口 API,连接数据库,创建表,INSERT 操作,SELECT 操作,UPDATE 操作,DELETE 操作安装 在 C/C++ 程序中使用 SQLite 之前,我们需要确保机器上已经有 SQLite 库。可以查看 SQLite 安装章节了解安装过程。 C/C++ 接口 API 以下是重要的 C&C++ / SQLite 接口程序,可以满足您在 C/C++ 程序中使用 SQLite 数据库的需求。如果您需要了解更多细节,请查看 SQLite 官方文档。 序号 AP

  • 问题内容: 是C,C ++,Java或C#中的main()(或Main()),用户定义的函数还是内置函数? 问题答案: 这是用户定义的函数,对于程序执行来说是必需的。当您以编译语言运行程序时,该功能即为执行的功能。例如,在Java中,如果类中具有签名功能,则可以执行该类,因为JVM将执行该方法的内容。 Java范例: … … 结果将“ Hello World”打印到控制台。

  • C语言包含5个基本数据类型:void,integer,float,double, 和char. 类型 描述 void 空类型 int 整型 float 浮点类型 double 双精度浮点类型 char 字符类型 C++ 定义了另外两个基本数据类型:bool 和wchar_t. 类型 描述 bool 布尔类型, 值为true 或 false wchar_t 宽字符类型 类型修饰符 一些基本数据类型能

  • C/C++ Search Extension是一款可以在浏览器地址栏快速、方便、高效地搜索 C/C++ 文档的浏览器插件,支持 Chrome/Firefox/Edge。 Github 地址: https://github.com/huhu/cpp-search-extension 官网地址:https://cpp.extension.sh/ 其他语言同类插件有:  Rust - Rust Sear