我的下面数组有以下值{$ 100.0,$ 1000.0,$ - 1000.0} 我需要在$ xxx.xx中显示值,在括号中显示负数,因此将$ 1000.0显示为$ 1000.00,将$ -1000.0显示为$(1000.00)
答案 0 :(得分:2)
修改强>
由于您要在0
中添加其他string
,我建议您先将其转换为double
值,然后检查该值是正还是负,然后根据评估,您决定乘以/不乘以-1
以ToString("F2")
格式重新打印。
string exampleStr = "$-1000.0";
double val = Convert.ToDouble(exampleStr.Substring(1));
string newStr = "$" + (val < 0 ? "(" + (val * -1).ToString("F2") + ")" : val.ToString("F2"));
<强>原始强>
对于具有正值的string
,您无需执行任何操作。但对于具有负值的string
,您只需检查该模式,如果它StartsWith
$-
。如果是,则通过将$-
替换为$(
并添加其他结束括号)
来处理它。像这样:
string exampleStr = "$-1000.0"; //this has to be replaced with your LabelValue.Value
if (exampleStr.StartsWith("$-"))
exampleStr = string.Concat(exampleStr.Replace("$-", "$("), ")");
//resulting exampleStr = "$(1000.0)"
答案 1 :(得分:2)
Parse
(对Decimal
这是一个更好的选择,当你使用钱时),然后格式来重复代表:
String[] source = new String[] { "$100.0", "$1000.0", "$-1000.0" };
var result = source
.Select(item => Decimal.Parse(item.Trim('$'), CultureInfo.InvariantCulture))
.Select(money => money < 0
? String.Format("$({0:F2})", -money)
: String.Format("${0:F2}", money));
//.ToArray(); // in case you want "result" being an array
// "$100.00, $1000.00, $(1000.00)"
Console.Write(String.Join(", ", result));