任何文化中没有小数点、点或逗号的十进制字符串
Decimal string without decimals, dots or commas in any culture
如果我在 C# 中有一个简单的小数,并且我想 ToString
它在任何文化中都没有任何点、逗号或小数 - 我该怎么做?
我尝试了 ToString("N0")
和 invariantculture
删除小数,但它添加了“。”用我的语言。
最好的方法是什么?
你还没有在评论中澄清,但我怀疑你想要这样的东西?
3.14 -> 3
5.34543543 -> 5
如果那是正确的,那么您只需要将 decimal
转换为 int
,这将去除精度并给您 just 整个数.
string someString = ((int)someDecimal).ToString();
如果你发现自己经常重复这个逻辑,你可以做一个简单的扩展方法来让它保持干爽:
public static class DecimalExtensions
{
public static string ToIntString(this decimal input)
{
return ((int)input).ToString();
}
}
简单地这样称呼它:
string someString = someDecimal.ToIntString();
简单fiddlehere
编辑
@HansPassant居然在评论里给出了最简单的解法,我傻傻的不记得了:
string someString = someDecimal.ToString("F0", System.Globalization.CultureInfo.InvariantCulture);
这是一个好得多的答案,如果汉斯发布了答案,我建议将他们的答案标记为解决方案。
除了 maccettura 的答案,它只适用于 (2^31)-1 和 -(2^31)-1 之间的数字。您可以使用:
decimal.Truncate(decimalToTruncate)
这应该适用于小数可以存储的所有值。
简单的方法就是使用 Convert.ToInt32("Your Value") 而不是 .ToString()。
所以
字符串结果= Convert.ToInt32("3.14").ToString();
它会给你“3”作为结果。
如果我在 C# 中有一个简单的小数,并且我想 ToString
它在任何文化中都没有任何点、逗号或小数 - 我该怎么做?
我尝试了 ToString("N0")
和 invariantculture
删除小数,但它添加了“。”用我的语言。
最好的方法是什么?
你还没有在评论中澄清,但我怀疑你想要这样的东西?
3.14 -> 3
5.34543543 -> 5
如果那是正确的,那么您只需要将 decimal
转换为 int
,这将去除精度并给您 just 整个数.
string someString = ((int)someDecimal).ToString();
如果你发现自己经常重复这个逻辑,你可以做一个简单的扩展方法来让它保持干爽:
public static class DecimalExtensions
{
public static string ToIntString(this decimal input)
{
return ((int)input).ToString();
}
}
简单地这样称呼它:
string someString = someDecimal.ToIntString();
简单fiddlehere
编辑
@HansPassant居然在评论里给出了最简单的解法,我傻傻的不记得了:
string someString = someDecimal.ToString("F0", System.Globalization.CultureInfo.InvariantCulture);
这是一个好得多的答案,如果汉斯发布了答案,我建议将他们的答案标记为解决方案。
除了 maccettura 的答案,它只适用于 (2^31)-1 和 -(2^31)-1 之间的数字。您可以使用:
decimal.Truncate(decimalToTruncate)
这应该适用于小数可以存储的所有值。
简单的方法就是使用 Convert.ToInt32("Your Value") 而不是 .ToString()。
所以
字符串结果= Convert.ToInt32("3.14").ToString();
它会给你“3”作为结果。