C# Decimal ToString在不同的PC中返回不同的值

C# Decimal ToString在不同的PC中返回不同的值,c#,C#,我面临一个问题,我的代码是: decimal i = 5; return i.ToString(); 上述代码在我的电脑中返回5.0,但在另一台电脑中返回5 我知道我可以通过自定义数字格式字符串来修复它 但我不知道问题的原因是什么 谁能告诉我你为什么要修理它ToString应将数字转换为适合当前使用计算机的用户的文本输出(例如,使用本地文化设置等)。出于某种原因是否要覆盖用户的首选项?十进制类型非常罕见,它可以记住用于指定值的有效位数。其他浮点类型(float和double)根本无法做到这一点

我面临一个问题,我的代码是:

decimal i = 5;
return i.ToString();
上述代码在我的电脑中返回5.0,但在另一台电脑中返回5 我知道我可以通过自定义数字格式字符串来修复它 但我不知道问题的原因是什么


谁能告诉我你为什么要修理它
ToString
应将数字转换为适合当前使用计算机的用户的文本输出(例如,使用本地文化设置等)。出于某种原因是否要覆盖用户的首选项?十进制类型非常罕见,它可以记住用于指定值的有效位数。其他浮点类型(float和double)根本无法做到这一点。在源代码中很重要,从数据库表检索值时也起作用,现在默认格式取决于数据的输入方式。虽然这在很大程度上是一个特性,但通常并不可取。所以一定要使用你想要避免意外的特定格式。你是在多台电脑上运行这段代码吗?或者你是从其他地方(如数据库、文件)获取十进制值(5)?@SadeghAlinejad:只有当某些东西没有按应有的方式工作时,这才是一个问题。如果你只是想了解行为(而不需要改变),那么这就是一个问题。这似乎很迂腐;但是Luaan的评论写得正是因为他们推断你想改变行为,因为你已经将其标记为“问题”。请发布一篇展示问题的文章。我请求的原因是希望看到产生问题的确切代码。现在,这个错误似乎出现在您的计算机上,因为问题中的代码(现在)不应该返回“5.0”或“5,0”,它应该返回“5”,因为Decimal类型知道它应该包含多少个小数位数,在本例中,小数位数是零。正如@Evk所问的,你是否从其他来源获得了5?也许问题/区别就在这里?在任何情况下,发布一个。