这些行是用C写的#

decimal a = 2m;
decimal b = 2.0m;
decimal c = 2.00000000m;
decimal d = 2.000000000000000000000000000m;

Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);

生成以下输出:

2
2.0
2.00000000
2.000000000000000000000000000

所以我可以看到,从一个文本创建一个十进制变量,可以控制精度.

  • 我可以在不使用文字的情况下调整十进制变量的精度吗?
  • 如何从a中创建b?如何从c创建b?

推荐答案

为了更严格地符合ECMA CLI规范,在.NET1.1中引入了这样的保留尾随零.

MSDN上有一些相关信息,例如here.

可以按如下方式调整精度:

  • 数学圆形(或天花板、地板等)以降低精度(b从c开始)

  • 乘以1.000...(使用你想要的小数位数)提高精度——例如,乘以1.0M从a中得到b.

.net相关问答推荐

NETSDK1083:无法识别指定的 RuntimeIdentifierwin10-x64

当数据大量分布在微服务中时,我应该如何设计后端?

Msbuild try 构建 msbuild.exe 而不是我的 .csproj 文件

为什么这个同步运行的异步睡眠会挂起?

如何正确使用await using语法?

将字符串与容差进行比较

图像 UriSource 和数据绑定

移位比Java中的乘法和除法更快吗? .网?

.NET 应用程序的链接器状态(又名请先生,我可以有一个链接器2009 年版)

为什么我得到 411 Length required 错误?

如何以编程方式 Select ListView 中的项目?

.Net 中的 Decimal.One、Decimal.Zero、Decimal.MinusOne 的用途是什么

如何创建只读依赖属性?

如何授予所有用户对我的应用程序创建的文件的完全权限?

使用 lambda 表达式代替 IComparer 参数

如何修复 .NET Windows 应用程序在启动时崩溃并出现异常代码:0xE0434352?

为什么甚至可以更改私有成员,或使用反射在 C# 中运行私有方法?

DateTime.Compare 如何判断日期是否小于 30 天?

obj 文件夹是为了什么而生成的?

从不同程序集中的类名中解析类型