3

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

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”吗?

这怎么行不通?

谢谢你的帮助。

4

3 回答 3

0

如果你坚持小数,那么可以做类似的事情

decimal.Floor(decimal.Parse(myNumber));

否则只是很难转换为 int

(int)decimal.Parse(myNumber)
于 2013-08-08T15:22:08.393 回答
0

我认为 NumberFormatInfo 不适用于您的情况。它通常用于将小数格式化为字符串。

有什么问题

var noDecimals = decimal.Round(decimal.Parse(myNumber, numberFormatInfo),0);
于 2013-08-08T15:22:20.893 回答
0

听起来你只想截断:

http://msdn.microsoft.com/en-us/library/system.decimal.truncate.aspx

var myNumber = "100255.123";

var noDecimals = decimal.Truncate(decimal.Parse(myNumber));
于 2013-08-08T15:27:39.107 回答