C# 将字符串数值重新格式化为使用减号而不是括号表示负数

C# 将字符串数值重新格式化为使用减号而不是括号表示负数,c#,formatting,C#,Formatting,我构建了一个服务,从我的新prime经纪人那里读取交易数据的csv文件。这些文件显示负数的这种格式 这是读取文件和进程的代码(仅显示我检查重复符号的部分,因为我存储在Azure表中,不能有重复符号,因为符号是行键) for(var i=0;i0&&记录[i].Symbol==记录[i-1].Symbol) {//记录[i]和记录[i-1]中的列求和 //将符号的ent更改为新值 实体[i-(1+dupeRecords)].CommissionPl=Convert.ToDouble(记录[i].

我构建了一个服务,从我的新prime经纪人那里读取交易数据的csv文件。这些文件显示负数的这种格式

这是读取文件和进程的代码(仅显示我检查重复符号的部分,因为我存储在Azure表中,不能有重复符号,因为符号是行键)

for(var i=0;i0&&记录[i].Symbol==记录[i-1].Symbol)
{//记录[i]和记录[i-1]中的列求和
//将符号的ent更改为新值
实体[i-(1+dupeRecords)].CommissionPl=Convert.ToDouble(记录[i].CommissionPl)+Convert.ToDouble(记录[i-1].CommissionPl.ToString(文化信息.InvariantCulture);
实体[i-(1+dupeRecords)].PositionPl=Convert.ToDouble(记录[i].PositionPl)+Convert.ToDouble(记录[i-1].PositionPl.ToString(文化信息.不变量文化);
实体[i-(1+DuperRecords)].TransactionPl=Convert.ToDouble(记录[i].TransactionPl)+Convert.ToDouble(记录[i-1].TransactionPl).ToString(文化信息.InvariantCulture);
实体[i-(1+dupeRecords)].TotalPl=Convert.ToDouble(记录[i].TotalPl)+Convert.ToDouble(记录[i-1].TotalPl).ToString(文化信息.不变量文化);
//不要为此记录创建新的ent
//计算要匹配的实体索引的重复项
dupeRecords++;
}
问题在于,这些条目(即记录[i-1].TotalPl等)为负数时,尽管在处理过程中将鼠标悬停在其上方时,文件中的-100(例如)显示为(100)。Convert.ToDouble函数无法处理括号格式的条目


在迭代记录时,我找不到一种简单的方法来重新格式化字符串值。我可以检查括号,然后去掉括号并乘以-1,但我可能看不到一个更简单的解决方案。

使用
Convert.ToDouble
,使用
double.Parse
并指定允许的格式:

NumberStyles styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign | NumberStyles.Float | NumberStyles.AllowThousands;
entities[i - (1 + dupeRecords)].CommissionPl = double.Parse(records[i].CommissionPl, styles)  ...

不要使用
Convert.ToDouble
,而是使用
double.Parse
并指定允许的格式:

NumberStyles styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign | NumberStyles.Float | NumberStyles.AllowThousands;
entities[i - (1 + dupeRecords)].CommissionPl = double.Parse(records[i].CommissionPl, styles)  ...