Arn*_*psa 6 c# parsing decimal
如何将字符串解析为十进制,以便它适用于两种格式 - w /逗号和句点?
[Fact]
public void foo(){
var a="1,1";
var b="1.1";
Assert.Equal(Parse(a),Parse(b));
}
private decimal Parse(string s){
return decimal.Parse(s,NumberStyles.Any,
CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Test 'Unit.Sandbox.foo' failed: Assert.Equal() Failure
Expected: 11
Actual: 1,1
Run Code Online (Sandbox Code Playgroud)
你可以尝试:
private decimal Parse(string s){
s = s.Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator);
return decimal.Parse(s,NumberStyles.Any,
CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)
这个怎么样?
private static decimal Parse(string s)
{
s = s.Replace(",", ".");
return decimal.Parse(s);
}
Run Code Online (Sandbox Code Playgroud)
您应该通过在解析逗号小数字符串之前将货币小数分隔符修改为逗号来获得所需的结果。这里有一些食物资源:
您也可以实现自己的 Iformatprovider,如下所述:
http://msdn.microsoft.com/en-us/library/t7xswkc6.aspx http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
哦,或者你可以做一个肮脏的黑客,简单地用“.”对“,”进行字符串替换。;)
| 归档时间: |
|
| 查看次数: |
17233 次 |
| 最近记录: |