我有一个javascript代码,它将金额转换为美国格式,我希望在代码背后可以有任何人帮助我...
<script type="text/javascript">
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}
</script>
或者如果有更简单的方法告诉我。我的实际要求是在文本框中对两个给定的金额求和,并在第三个文本框中显示金额。
例如,如果我通过上面的脚本将我的第一个值设为123.12
,我将在我的文本框中显示为$123.12
,第二个与$123.12
相同,输出应为$246.23
任何人都可以帮助我
答案 0 :(得分:3)
货币有一种标准格式:
double n = 12345.67;
Console.WriteLine(n.ToString("C2", CultureInfo.GetCultureInfo("en-US")));
Ouptut:
$12,345.67
负货币值的标准是在括号内显示,所以如果你想要一个负号而你必须修改文化:
CultureInfo info = new CultureInfo("en-US");
info.NumberFormat.CurrencyNegativePattern = 1;
double n = -12345.67;
Console.WriteLine(n.ToString("C2", info));
Ouptut:
-$12,345.67
答案 1 :(得分:0)
123.12 + 123.12 = 246.23
那么您的客户可能不会满意$
和,
符号,以便稍后添加它们?decimal.ToString(string format)
方法,这样的方法可以为您提供正确的结果:static string Format(decimal x) { return x.ToString("$#,0.00", System.Globalization.CultureInfo.InvariantCulture); } //Usage: string currencyFormatedNumber = Format(-41023.43M); //returns -$41,023.43
您可以使用以下内容:
static string Format(decimal x) { return x.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-us")); }
用于格式化货币,但它会格式化负数,因为它们应格式化($100.00)
表示-100.00 dollars
,这与您的代码不同。