[英]Decimal string without decimals, dots or commas in any culture
如果我在C#中有一個簡單的小數,並且想在任何區域性中使用ToString
使其不帶任何點,逗號或小數-我該怎么做?
我嘗試了使用invariantculture
的ToString("N0")
來刪除小數,但添加了“。” 用我的語言
做這個的最好方式是什么?
您尚未在評論中澄清,但我懷疑您想要這樣的東西嗎?
3.14 -> 3
5.34543543 -> 5
如果這是正確的,那么你只需要你投decimal
到int
這將剝奪精度關閉, 只給你整個號碼。
string someString = ((int)someDecimal).ToString();
如果您發現自己經常重復此邏輯,則可以制作一個簡單的擴展方法以使其保持DRY:
public static class DecimalExtensions
{
public static string ToIntString(this decimal input)
{
return ((int)input).ToString();
}
}
只需這樣稱呼它:
string someString = someDecimal.ToIntString();
簡單的小提琴在這里
@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()。
所以
字符串result = Convert.ToInt32(“ 3.14”)。ToString();
結果為“ 3”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.