我的字符串值示例
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"))
答案 0 :(得分:3)
试用此代码
string amtStr = "{100,000,000.00}";
amtStr = amtStr.Replace("{", "-").Replace("}", "").Replace("(", "-").Replace(")", "").Trim() ;
double amt = Convert.ToDouble(amtStr);
答案 1 :(得分: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);
答案 2 :(得分:1)
根据问题的标题,您可能需要的是:
amt = Double.Parse(amtStr.Trim("{}".ToCharArray()))
在这里,我们删除前导和尾随{
和}
,然后使用Double.Parse
将结果字符串解析为double。包含ToCharArray
,因此我们可以将chars指定为一个字符串而不是char数组。