Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 十进制的删除尾随零_C# - Fatal编程技术网

C# 十进制的删除尾随零

C# 十进制的删除尾随零,c#,C#,我正在尝试转换这个十进制?largeValue转换为just569,但当我使用Truncate时,会出现错误“无法将十进制转换为十进制” 这是删除尾随零的正确方法吗 decimal? Value = 569; decimal? largeValue = 569.0000M; decimal? outValue; outValue = decimal?.Truncate(largeValue); 可为null的值类型有一个保存值的value属性(如果有)和一个HasValue属性,该属性指示变量

我正在尝试转换这个
十进制?largeValue
转换为just
569
,但当我使用
Truncate
时,会出现错误“无法将十进制转换为十进制”

这是删除尾随零的正确方法吗

decimal? Value = 569;
decimal? largeValue = 569.0000M;
decimal? outValue;
outValue = decimal?.Truncate(largeValue);

可为null的值类型有一个保存值的
value
属性(如果有)和一个
HasValue
属性,该属性指示变量不为null(因此具有值)。此代码编译并运行:

decimal? value = 569;
decimal? largeValue = 569.0000M;
Debug.Assert(largeValue.HasValue);
Debug.Assert(value == largeValue);
decimal? outValue;
outValue = decimal.Truncate(largeValue.Value);
请注意,对
Truncate
的调用不会影响该值(尽管它确实消除了存储在数字十进制表示形式中的多余零)。然而,
569m
569.0000m
代表相同的数字

我被纠正了(被@alexeilevenkov)。发件人:

比例因子还保留十进制数中的任何尾随零。尾随零不会影响算术或比较运算中十进制数的值。但是,如果应用了适当的格式字符串,ToString方法可能会显示尾随的零


你每天都能学到新东西

尝试
largeValue.Value
decimal?
可以保存小数的值,也可以是
null
。该值位于
value
属性中。如果要检查
decimal?
是否有值(即不为null),请查看示例未编译的
HasValue属性y。在最后一行(`=decimal?`)上写入时,不能将类型
decimal
视为可为空
Truncate
还需要一个
decimal
值,而不是
decimal?
。此外,您也不会通过将小数保存回小数来“删除尾随零”。您需要将值格式化为字符串,并在转换过程中删除零。@gunr217
1m和
1.00m是两个不同的
decimal
值。。。你为什么说你不能那样做?@AlexeiLevenkov:
1m
1.00m
在价值上有什么不同。它们都是
1
@alexeilevenkov的十进制值的文字表示:你是在评论我关于
Truncate
的注释吗?调用
Truncate(569.0000m)
将产生
569m
。但是
569.0000m==569m
。这有什么误导性。这就是为什么我添加了
Debug.Assert(value==largeValue);这两个值相等@阿列克谢列文科夫:我被纠正了。谢谢你指出这一点。我已经更新了我的答案(希望你满意)。到下个月底,我将在.NET框架上工作20年——我以前从未注意到这个“特性”