C# Parse删除尾随的零

C# Parse删除尾随的零,c#,.net,asp.net-mvc,entity-framework,C#,.net,Asp.net Mvc,Entity Framework,我试图将字符串值强制转换为ObjectParameter的十进制,而存储过程的十进制精度必须达到两位 基本上是这样的: string scScore = "1.50"; decimal scScore2 = Decimal.Parse(scScore); 我希望scScore2等于1.50,但不管我怎么投,结果总是1.5 当我在新的控制台应用程序中用C#fiddle或VS运行它时,这段代码正是我想要的。我已经尝试了我在这个网站和其他网站上找到的每一种方法来保持我的跟踪零,但它似乎总是迷失方向

我试图将字符串值强制转换为ObjectParameter的十进制,而存储过程的十进制精度必须达到两位

基本上是这样的:

string scScore = "1.50";

decimal scScore2 = Decimal.Parse(scScore);
我希望scScore2等于1.50,但不管我怎么投,结果总是1.5

当我在新的控制台应用程序中用C#fiddle或VS运行它时,这段代码正是我想要的。我已经尝试了我在这个网站和其他网站上找到的每一种方法来保持我的跟踪零,但它似乎总是迷失方向

我还尝试在解析后添加一个尾随零,但这也不起作用

还有什么原因可能导致这种情况

编辑:

我被调试器中的值误导了


输出确实如人们所料。

小数没有尾随的零


如果您需要,它仅用于显示。为字符串应用格式,如“0.00”。

小数没有尾随的零


如果您需要,它仅用于显示。为字符串应用格式,如“0.00”。

小数没有尾随的零


如果您需要,它仅用于显示。为字符串应用格式,如“0.00”。

小数没有尾随的零



如果您需要,它仅用于显示。为字符串应用格式,如“0.00”。

你错了。:)嗯,那只是为了好玩。试试
22m.Equals(22.00m)
。我没说数值不相等;-)你错了嗯,那只是为了好玩。试试
22m.Equals(22.00m)
。我没说数值不相等;-)你错了嗯,那只是为了好玩。试试
22m.Equals(22.00m)
。我没说数值不相等;-)你错了嗯,那只是为了好玩。试试
22m.Equals(22.00m)
。我没说数值不相等;-)@大卫这是一个鲜为人知的事实,但小数也有精度。看。@Lucastrezesniewski:很有趣。很高兴知道。(在精度很重要的科学计算中似乎很有用,不管其值有多大。)学习后,我在谷歌上搜索了一下,这让我想到了这一点:这不仅使这个问题变得重复,而且答案似乎足够简单。OP可能查看的是调试器中的值,而不是实际输出中的值。测试确认结果值上的
.ToString()
确实输出了
“1.50”
@David是的,我在寻找复制品时发现了,但你的更适合这个问题。@David通过输出系统.Diagnostics.Debug.WriteLine(scScore2)确认我被误导了。大卫:我能读到任何关于为什么会出现这种情况并且将来不会被误导的信息吗?这是一个鲜为人知的事实,但小数也有精确性。看。@Lucastrezesniewski:很有趣。很高兴知道。(在精度很重要的科学计算中似乎很有用,不管其值有多大。)学习后,我在谷歌上搜索了一下,这让我想到了这一点:这不仅使这个问题变得重复,而且答案似乎足够简单。OP可能查看的是调试器中的值,而不是实际输出中的值。测试确认结果值上的
.ToString()
确实输出了
“1.50”
@David是的,我在寻找复制品时发现了,但你的更适合这个问题。@David通过输出系统.Diagnostics.Debug.WriteLine(scScore2)确认我被误导了。大卫:我能读到任何关于为什么会出现这种情况并且将来不会被误导的信息吗?这是一个鲜为人知的事实,但小数也有精确性。看。@Lucastrezesniewski:很有趣。很高兴知道。(在精度很重要的科学计算中似乎很有用,不管其值有多大。)学习后,我在谷歌上搜索了一下,这让我想到了这一点:这不仅使这个问题变得重复,而且答案似乎足够简单。OP可能查看的是调试器中的值,而不是实际输出中的值。测试确认结果值上的
.ToString()
确实输出了
“1.50”
@David是的,我在寻找复制品时发现了,但你的更适合这个问题。@David通过输出系统.Diagnostics.Debug.WriteLine(scScore2)确认我被误导了。大卫:我能读到任何关于为什么会出现这种情况并且将来不会被误导的信息吗?这是一个鲜为人知的事实,但小数也有精确性。看。@Lucastrezesniewski:很有趣。很高兴知道。(在精度很重要的科学计算中似乎很有用,不管其值有多大。)学习后,我在谷歌上搜索了一下,这让我想到了这一点:这不仅使这个问题变得重复,而且答案似乎足够简单。OP可能查看的是调试器中的值,而不是实际输出中的值。测试确认结果值上的
.ToString()
确实输出了
“1.50”
@David是的,我在寻找复制品时发现了,但你的更适合这个问题。@David通过输出系统.Diagnostics.Debug.WriteLine(scScore2)确认我被误导了。我能读到什么关于为什么会这样,将来不会被误导的信息吗?