我正在尝试将像10.00%
这样的字符串更改为类似1000
的字符。
我一直在尝试不同的东西,但我不断收到FormatException错误。
以下是我为解决这个问题所做的工作:
string text = "10.00%";
string s = text.TrimEnd(new char[] {'%'});
float f = float.Parse (s);
int i = (int)f;
i = i*100;
有更好的方法吗?
每条评论 - 对于10.10%
和12.345%
,我希望获得1010
和12345
的结果
但是,对于我的用途,我永远不会解析12.345%
,因为它在我的字符串值中不存在,而是12.34%
始终为2位小数
答案 0 :(得分:1)
为了准确计算数学,我会把它保留为浮点数,但这里有一个简单的解决方案
string t = "10.00%";
float f = float.Parse(t.Split('%')[0]);
int i = (int)(f * 100);
我会做的是
string t = "10.00%";
float f = float.Parse(t.Split('%')[0]);
f = f * 100;
答案 1 :(得分:0)
这样做:
var possibleNum = text.Replace(".", "").Replace("%","");
int num;
If(int.TryParse(possibleNum, out num)
{
// it's an int and the value is in num
}
else
{
// not int so what do you want to do
}
修改强>
在评论中OP表示字符串将始终可解析为一个数字,所以在这种情况下,只需执行此操作:
int num = int.Parse(text.Replace(".", "").Replace("%",""));