2013-12-18 53 views
0

将字符串值量翻倍我的字符串值

string amtStr = "{100,000,000.00}"; 

预期结果/输出

double amt = -100,000,000.00 

我做过尝试,但它给了我错误"Cannot convert from 'string' to 'System.IFormatProvider'"

Convert.ToDouble(txtAmount.Text.ToString("#,0.00;-#,0.00")) 
+1

也许downvoter想评论?我觉得低调这个问题有点苛刻。对要求很清楚,并且包括一个尝试。 – Baldrick

回答

2

尝试此代码

 string amtStr = "{100,000,000.00}"; 
     amtStr = amtStr.Replace("{", "-").Replace("}", "").Replace("(", "-").Replace(")", "").Trim() ; 
     double amt = Convert.ToDouble(amtStr); 
1

根据问题的标题,也许你需要的是:

amt = Double.Parse(amtStr.Trim("{}".ToCharArray())) 

在这里,我们删除开头和结尾{}秒,然后用分析的Double.Parse结果字符串到双。包含ToCharArray,所以我们可以指定字符作为一个字符串而不是char数组。

+0

结果应该是负值 – Jade

2

在不替换该大括号{}这个默认不能被转换。如果这是一个适当的会计数字格式,那么你可以使用这样的NumberStyles

string amtStr = "(100,000,000.00)"; 
NumberStyles styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign | NumberStyles.Float | NumberStyles.AllowThousands; 
string outputStr = double.Parse(amtStr, styles).ToString("#,0.00;-#,0.00"); 
double outputDbl = double.Parse(outputStr);