在我的网站中,我需要从XML读取数据,其中一些数据是十进制值。
有时价值是正确的:1
或72,59
,有时价值就像1.0000
或72,590000
,如何将其转换为正确格式的最佳方式:
ps:我需要一个字符串值。
谢谢!
答案 0 :(得分:2)
您希望他们采用什么格式?等等多少小数?
如果您希望始终为2位小数,请尝试使用标准数字格式,例如:
decimal value = 123.456;
Console.WriteLine("Your account balance is {0:F}.", value);
有关其他常见数字格式化技术,请参阅this MSDN示例。
答案 1 :(得分:1)
你写的是你试过的
string.Format("{0:F}","1.00000");
问题在于您将string
传递给函数。数字格式仅适用于数字数据类型。首先将值转换为小数,然后对其进行格式化。
试试这个
public string ReformatDecimalString(string input)
{
const string formatString = //something
var decimalValue = decimal.Parse(input);
return decimalValue.ToString(formatString);
}
当您格式化单个数字值时,使用x.ToString(formatString)
比string.Format(formatString, x)
更有效。但请注意,特定格式字符串在两种情况下会有所不同。
如果您的输入数据有小数点(不是逗号)并且您的计算机文化使用小数点逗号,那么您应该能够使用CultureInfo.InvariantCulture正确解析该值:
var decimalValue = decimal.Parse(input, CultureInfo.InvariantCulture);
答案 2 :(得分:0)
如果我正确地阅读了您的答案,那么您正在尝试将从XML文件中提取的Integer值转换为字符串值 而不会尾随零 (“ps:我需要一个字符串值。“)
此代码:
decimal test = 20.000000m
test.ToString("G29");
可能会做你想要的事情