我有一个像这样的十进制数:
62.000,0000000
我需要将该十进制转换为int; 它总是有零十进制数; 所以我不会失去任何精度.我想要的是这个:
62.000
存储在c#中的int变量上.
我尝试了很多方法,但它总是给我一个错误,字符串格式不正确,这是我试过的方法之一:
int.Parse("62.000,0000000");
Run Code Online (Sandbox Code Playgroud)
希望你能帮助我,谢谢.
Jon*_*eet 12
你需要在正确的文化中解析它.例如,德国文化使用"." 作为组分隔符和","作为小数分隔符 - 所以此代码有效:
CultureInfo german = new CultureInfo("de-DE");
decimal d = decimal.Parse("62.000,0000000", german);
int i = (int) d;
Console.WriteLine(i); // Prints 62000
Run Code Online (Sandbox Code Playgroud)
这就是你要追求的吗?请注意,如果您使用在不同文化中格式化的数字来呈现它,则会失败...
编辑:正如里德在他的评论中提到的那样,如果你的真实文化是西班牙,那么就可以用"es-ES"换取"de-DE".
您需要正确指定您的文化:
var ci = CultureInfo.CreateSpecificCulture("es-ES");
int value = (int) decimal.Parse("60.000,000000", ci);
Run Code Online (Sandbox Code Playgroud)
如果这样做,它将正确转换数字.