这应该是非常简单和直接的,但由于某种原因它不起作用。
var myNumber = "100255.123";
var numberFormatInfo = new NumberFormatInfo
{CurrencyDecimalDigits = 0, NumberDecimalDigits = 0, PercentDecimalDigits = 0};
var noDecimals = decimal.Parse(myNumber, numberFormatInfo);
//noDecimals = 100255.123 ???
出于上下文的原因,我需要将此字符串解析为十进制而不是整数。
应用NumberFormatInfo后,“noDecimals”变量不应该被解析为“100255”而没有任何十进制数字吗?
为什么这不起作用?
感谢您的帮助。
答案 0 :(得分:0)
如果你坚持使用小数,那么可以做类似的事情
decimal.Floor(decimal.Parse(myNumber));
否则只是硬铸到int
(int)decimal.Parse(myNumber)
答案 1 :(得分:0)
我不认为NumberFormatInfo适用于您的情况。它通常用于将小数格式化为字符串。
有什么问题
var noDecimals = decimal.Round(decimal.Parse(myNumber, numberFormatInfo),0);
答案 2 :(得分:0)
听起来你只想截断:
http://msdn.microsoft.com/en-us/library/system.decimal.truncate.aspx
var myNumber = "100255.123";
var noDecimals = decimal.Truncate(decimal.Parse(myNumber));