NumberFormatInfo不删除小数

时间:2013-08-08 15:06:26

标签: c# globalization

这应该是非常简单和直接的,但由于某种原因它不起作用。

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”而没有任何十进制数字吗?

为什么这不起作用?

感谢您的帮助。

3 个答案:

答案 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));