我有一个填充了小数的字符串列表,只有前两个值必须是货币而其他值必须取小数
这是字符串列表
2451.37
1678.00
12.00
90.00
10.00
我需要输出为:
$2,451.37
$1,678.00
12
90
10
我试过这个:
<h4 class="semi-bold">
@if (haveDataDay)
{
@valueDateDay.ToString(valueDateDay % 1 == 0 ? "N0" : "C2") }
else
{ @this.FP("lbl.loader.nodata") }
</h4>
</div>
但这只会使货币的值小于“ .00 ”,但有时候我的列表前两个值为“ .00 ”他们没有得到货币变化
我如何存档?
答案 0 :(得分:1)
您可以将字符串转换为双精度数,然后使用内置格式设置工具。有一些.NET方法可以处理货币和舍入/数字截断。
using System;
using System.Collections.Generic;
using System.Globalization;
namespace CurrencyFormatting_StackOverflow
{
class Program
{
static void Main(string[] args)
{
var strings = new List<string>()
{
"2451.37",
"1678.00",
"12.00",
"90.00",
"10.00"
};
FormatStrings(strings);
string display = string.Join("\n", strings);
Console.WriteLine(display);
/*
* $2,451.37
* $1,678.00
* 12
* 90
* 10
*/
Console.ReadKey();
}
private static void FormatStrings(List<string> strings)
{
int index = 0;
for (; index < 2; index++)
{
string s = strings[index];
double d = double.Parse(s);
string currency = d.ToString("C2", CultureInfo.CreateSpecificCulture("en-US"));
strings[index] = currency;
}
for (; index < strings.Count; index++)
{
string s = strings[index];
double d = double.Parse(s);
double rounded = Math.Round(d, 2);
strings[index] = rounded + "";
}
}
}
}