Lar*_*ard 3 c# c#-4.0 invariantculture
如果我在 C# 中有一个简单的小数,并且我想要ToString在任何文化中不包含任何点、逗号或小数 - 我该怎么做?
我尝试使用ToString("N0")withinvariantculture删除小数,但它添加了“.” 用我的语言。
做这个的最好方式是什么?
你还没有在评论中澄清,但我怀疑你想要这样的东西?
3.14 -> 3
5.34543543 -> 5
如果这是正确的,那么您只需将您的值转换decimal为 an int,这会去掉精度并只给您整数。
string someString = ((int)someDecimal).ToString();
Run Code Online (Sandbox Code Playgroud)
如果您发现自己经常重复这个逻辑,您可以创建一个简单的扩展方法来保持干燥:
public static class DecimalExtensions
{
public static string ToIntString(this decimal input)
{
return ((int)input).ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
并简单地这样称呼它:
string someString = someDecimal.ToIntString();
Run Code Online (Sandbox Code Playgroud)
这里简单的小提琴
@HansPassant 实际上在评论中给出了最简单的解决方案,我因为不记得而感到愚蠢:
string someString = someDecimal.ToString("F0", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
这是一个更好的答案,如果汉斯发布了答案,我建议将他们的答案标记为解决方案。