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);
根据问题的标题,也许你需要的是:
amt = Double.Parse(amtStr.Trim("{}".ToCharArray()))
在这里,我们删除开头和结尾{
和}
秒,然后用分析的Double.Parse
结果字符串到双。包含ToCharArray
,所以我们可以指定字符作为一个字符串而不是char数组。
结果应该是负值 – Jade
在不替换该大括号{}这个默认不能被转换。如果这是一个适当的会计数字格式,那么你可以使用这样的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);
也许downvoter想评论?我觉得低调这个问题有点苛刻。对要求很清楚,并且包括一个尝试。 – Baldrick