为什么 Decimal.MaxValue - 0.5 的结果是整数?

2024-04-27

今天我在玩小数。我注意到这一点:

Decimal.MaxValue 
79228162514264337593543950335

Decimal.MaxValue - 0.5m
79228162514264337593543950334

以下代码打印 true。

static void Main(string[] args)
        {
            decimal d = Decimal.MaxValue - 0.5M;
            var b = d % 1 == 0;
            Console.WriteLine(b);

        }

我确信这背后有一个原因,但我不知道它是什么。


十进制类型使用 96 位来存储数字序列(ref http://msdn.microsoft.com/en-us/library/system.decimal.aspx),加上一个符号(1 位)和一个指定小数位位置的比例因子。

对于这个十进制数:

79228162514264337593543950335

所有 96 位都用在小数点左边 - 没有剩下任何东西来表示答案的小数部分。所以,它变得四舍五入。

如果将该数字除以 10:

7922816251426433759354395033.5

然后你就可以用一些位来表示小数部分 - 但只能表示 1/10,没有更精细的了。

之间的主要区别decimal and double/float是它基于一个decimal指定位置的比例因子小数点;其他浮动类型基于binary指定位置的比例因子二进制小数点.

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

为什么 Decimal.MaxValue - 0.5 的结果是整数? 的相关文章

  • 无法从 Web api POST 读取正文数据

    我正在尝试从新的 Asp Net Web Api 中的请求中提取一些数据 我有一个像这样的处理程序设置 public class MyTestHandler DelegatingHandler protected override Syst
  • 如何在编译C代码时禁用警告?

    我正在使用 32 位 Fedora 14 系统 我正在使用编译我的源代码gcc 有谁知道如何在编译c代码时禁用警告 EDIT 是的 我知道 最好的办法是修复这些警告以避免任何未定义 未知的行为 但目前在这里 我第一次编写了巨大的代码 并且在
  • 矩阵向量变换

    我正在编写一个代码来制作软件蒙皮器 骨骼 皮肤动画 并且我正处于 优化 阶段 蒙皮器工作得很好 并且在 Core 上 1 09 毫秒内对 4900 个三角形网格与 22 个骨骼进行蒙皮Duo 2 Ghz 笔记本 我需要知道的是 1 有人可以
  • 无法通过 HTTPS 调用 Web 服务

    我正在开发一个 Net 应用程序 它与 Web 服务通信以获取一些数据 Net 应用程序和 Web 服务之间的连接是通过 HTTPS 完成的 当我从 Net 应用程序调用 Web 服务时 我得到以下堆栈跟踪 System Net WebEx
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 编译器错误“错误:在文件范围内可变地修改了‘字符串’”

    考虑 include
  • 您可以在一个 Windows Azure 实例上部署多个 Web 应用程序吗?

    是否可以在一个 windows azure 小型计算实例中运行一堆 Web 应用程序 我正在考虑使用 Azure 作为放置一堆处于开发和非生产状态的项目 Web 应用程序 的地方 有些实际上已经被封存了 但我想在某个地方有一个活跃的实例 我
  • 格式化货币

    在下面的示例中 逗号是小数点分隔符 我有这个 125456 89 我想要这个 125 456 89 其他示例 23456789 89 gt 23 456 789 89 Thanks 看看这个例子 double value 12345 678
  • dropdownlist DataTextField 由属性组成?

    有没有一种方法可以通过 C 使 asp net 中的下拉列表的 datatextfield 属性由对象的多个属性组成 public class MyObject public int Id get set public string Nam
  • 使用 AdHocWorkspace 会导致“不支持语言‘C#’”。

    在VS2015中使用Microsoft CodeAnalysis CSharp Workspaces的RC2 这段代码会抛出异常 var tree CSharpSyntaxTree ParseText var workspace new A
  • 在VisualStudio DTE中,如何获取ActiveDocument的内容?

    我正在 VisualStudio 中编写脚本 并尝试获取当前 ActiveDocument 的内容 这是我当前的解决方案 var visualStudio new API VisualStudio 2010 var vsDTE visual
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 将非算术类型作为参数传递给 cmath 函数是否有效?

    给定以下用户定义类型S具有转换功能double struct S operator double return 1 0 以及以下调用cmath http en cppreference com w cpp header cmath使用类型的
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 在 Java 服务器中验证 Windows 用户

    我正在开发一个用 Java 编写的服务器和一个在同一网络上的 Windows 计算机上运行的客户端 用 Net 编写的桌面应用程序 我希望进行一些基本身份验证 以便服务器可以确定运行客户端的用户的用户名 而不需要用户在客户端中重新输入其 W
  • 如何获取 QIcon 的文件/资源​​路径

    假设我做了这样的事情 QIcon myIcon resources icon ico 我稍后如何确定该图标的路径 例如 QString path myIcon getPath 问题是 没有getPath 会员 我找不到类似的东西 但肯定有办
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • 从有符号字符转换为无符号字符然后再转换回来?

    我正在使用 JNI 并有一个 jbyte 类型的数组 其中 jbyte 表示为有符号字符 即范围从 128 到 127 jbyte 表示图像像素 对于图像处理 我们通常希望像素分量的范围为0到255 因此 我想将jbyte值转换为0到255
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM

随机推荐

  • 使用 Python 从 PDF 中的物理坐标返回文本字符串

    在过去的几个小时里 我一直在与 Google 和 PDFMiner 的有限文档作斗争 虽然我感觉很接近 但我只是没有得到我需要的东西 我已经经历过http www unixuser org euske python pdfminer htt
  • 简单的 XML 加载文件不起作用

    为什么这不起作用 url http query yahooapis com v1 public yql q select 20 20from 20html 20where 20xpath 3D 22 2F 2Fmeta 22 20and 2
  • Docker nuget连接超时

    尝试利用官方jetbrains teamcity agentKubernetes 上的图像 我已经设法在 Docker 中运行 Docker 但尝试使用以下命令构建 ASP NET Core 映像docker build命令失败于dotne
  • SetLocale 无法在 jsp 站点中以德语格式化货币

    我对 jstl 标签库感到困惑 我想将数字格式化为德国风格的货币 但我尝试的一切都不起作用 我找到了以下示例 但输出是相同的
  • 如何根据 angular.js 中的子复选框选择父复选框?

    我最近一直在使用 Angular js 并决定在选中父复选框后检查所有复选框 我已经使用了ng model and ng checked指令 div div div div
  • Hibernate 本机查询:无效的列名错误 SQL-17006

    package com abc def model import javax persistence Column import javax persistence Id import javax persistence Entity im
  • 在Angular JS中通过ajax调用发送数组

    我使用以下代码将一些信息发送到我的 servlet 来处理数据 http method GET url http localhost 8080 purchase AddInfo data addArray sample success fu
  • “for_each”值取决于无法确定的资源属性(Terraform)

    我有一个 terraform 配置 需要 创建一个 lambda 调用 lambda 迭代 lambda 的 json 结果 返回一个数组并为数组中的每个条目创建一个 CloudWatch 事件规则 相关代码如下 Create lambda
  • PHP GD库用于合并两个图像

    好的 我的文件中有两个图像 其中一件是T恤 另一个是徽标 我使用 CSS 设计了这两个图像的样式 使其看起来像徽标写在 T 恤上 我只是在 CSS 样式表中为徽标图像赋予了更高的 z index 无论如何 我是否可以使用 GD 库生成衬衫图
  • 对 Angular 2 中提供的 @NgModule 感到困惑

    我正在尝试玩 Angular2 当我将基本代码升级到 Angular 2 0 0 RC5 时 我发现引入了一个重大更改 NgModule 它相当于角度模块 在 Angularjs 1 x 中 对我来说 ngModule 让事情变得复杂 当我
  • Jquery Validate:如何忽略占位符文本(默认/空白时产生错误)

    我想让 jquery 验证忽略默认文本 我检查默认文本的方法是检查 element value 元素 alt 文本 这是我的代码 但无论它是空白 默认文本还是任何其他文本 它都会返回无效 validator addMethod notDef
  • 点击Leaflet地图上的点即可在Shiny中生成ggplot

    我正在尝试使用 R 中的 Shiny 创建一个 Leaflet 地图 它允许用户单击任何标记来生成表示该特定站点的信息 温度 的相应图 我合并了这个问题的代码 单击传单地图中的点作为闪亮绘图的输入 https stackoverflow c
  • 主要:并非所有代码路径都会返回值

    我正在制作列表并想在控制台中查看它 我有一个错误 它说 Main 并非所有代码路径都会返回值 也许你可以帮助我 这是我的代码 namespace ConsoleApplication5 public class DocConfig publ
  • C# 控制台应用程序上的退出按钮 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 大家好 我敢打赌我真的很蠢 你能帮我消除这些错误吗 抱歉 我是一名刚刚学习 C 的学生 我需要声明任何变量来纠正逻辑吗 void Windo
  • 位运算 (C++)

    最近面试时遇到一个问题 我被要求比较按位运算的性能 比如 简单描述一下不同位操作的性能 我想这个问题可能非常普遍并且非常特定于机器 但我也认为应该有一些关于这个的一般规则 你必须提到 我没有 那么 你会回答什么 我可能还应该说 比较它们在
  • 使用 javascript 过滤二维数组

    我有一个 2D 数组 我需要过滤具有日期字段 3d 列 的行 var data 1 a 12 12 2019 A 2 b A 3 c 12 1 2019 A 4 d A 预期结果是 result 1 a 12 12 2019 A 3 c 1
  • 用于迭代数据帧行以进行谷歌地图距离查询的 R 代码

    我正在寻求一些帮助 编写一些 R 代码来迭代数据帧中的行 并将每行中的值传递给函数 并将输出打印到 excel 文件 txt 文件或仅在控制台中 这样做的目的是使用此网站上的功能自动对谷歌地图进行一系列距离 时间查询 数百个 http ww
  • 僵尸:使用集成菜单归档失败

    当我尝试直接使用 Xcode 菜单存档项目时 产品 档案 效果很好 但是当我尝试从集成菜单 机器人 执行它时 我收到此错误 构建操作失败 没有指定任何错误 个人打造 任务可能因未知原因而失败 一个可能的原因是如果 有太多 可能是僵尸 进程
  • window.resolveLocalFileSystemURL 与 window.requestFileSystem

    使用上有什么区别window resolveLocalFileSystemURL vs window requestFileSystem使用 cordova 文件插件下载文件时 我找不到有关resolveLocalFileSystemURL
  • 为什么 Decimal.MaxValue - 0.5 的结果是整数?

    今天我在玩小数 我注意到这一点 Decimal MaxValue 79228162514264337593543950335 Decimal MaxValue 0 5m 79228162514264337593543950334 以下代码打