我的字符串值示例
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"))
我的字符串值示例
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"))
试试这个代码
string amtStr = "{100,000,000.00}";
amtStr = amtStr.Replace("{", "-").Replace("}", "").Replace("(", "-").Replace(")", "").Trim() ;
double amt = Convert.ToDouble(amtStr);
如果不替换大括号 {},则默认情况下无法转换。如果它是正确的会计号码格式,那么您可以像这样使用 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);
根据问题的标题,您可能需要的是:
amt = Double.Parse(amtStr.Trim("{}".ToCharArray()))
在这里,我们删除前导和尾随{
和}
s,然后使用 将结果字符串解析为双精度数Double.Parse
。ToCharArray
包含在内,因此我们可以将要删除的字符指定为一个字符串而不是字符数组。