【发布时间】:2016-12-21 10:21:21
【问题描述】:
从应用程序中提取的值是字符串格式,例如。 “0.38 美元”。因此,我使用 IsDigit 分隔给定字符串中的每个字符,然后使用字符串生成器将它们附加在一起。该数字也可以是字母数字,例如“12,365.23 AS”。有没有办法从给定的字符串中只恢复数字部分(连同小数部分)。 但我收到的输出是“38”而不是“0.38”。我还想比较给定的字符串值位于提供的上限和下限之间。 请让我知道如何继续。
string Value = "$0.38";
int upperLimit = 2500;
int lowerLimit = 50000;
StringBuilder sb = new StringBuilder();
//sb.Append(someString);
foreach (char amin in Value)
{
if (System.Char.IsDigit(amin))
{
sb.Append(amin);
}
}
int compareVal = Convert.ToInt32(sb.ToString());
Console.WriteLine("value for comparision" + " " + compareVal);
【问题讨论】:
-
Int32是存储货币的简单错误类型。使用double。 -
您可以改为从字符串中剥离货币指示符并将其直接转换为双精度
-
这是因为'.'不是数字,它会给出 038 转换时会产生 38 而不是 0.38
标签: c#