JQuery 计算滴仙
JQuery Calculation drops cents
我有这个块,它从 Firebase 中提取项目的当前支付金额和当前支付的金额。然后应该将两者相加得到第三个变量。
出于某种原因,代码将美分从总数中删除。
singleRef.once("value", function(snapshot) {
var a = parseInt(snapshot.val().amounts.paid); // The amount already paid
var b = parseInt(invoice.payment.amount); // The amount being applied
var c = a + b;
console.log(c);
});
假设发生了以下情况:
a = 0;
b = 10.86;
The result in this code will be:
c = 10; // should be 10.86
假设发生了以下情况:
a = 10.00;
b = 10.86;
The result in this code will be:
c = 20; // should be 20.86
分是什么并不重要,它总是四舍五入以摆脱它们。我已经尝试将 .toFixed('2')
添加到所有变量,仅 a 和 b,以及 c。所有结果都相同,没有分。
怎么做!?在过去的几个小时里,我一直在尝试这样做,这可能很简单,但我无法弄清楚。这让我发疯!我正在使用 angularjs 和 firebase。
函数parseInt()
专门用于解析整数,因此,如果您给它3.14159
,它会返回给您3
。
如果要解析浮点值,请尝试 parseFloat()
。
例如下面的代码:
var a = parseInt("3.141592653589");
var b = parseInt("2.718281828459");
var c = a + b;
alert(c);
var d = parseFloat("3.141592653589");
var e = parseFloat("2.718281828459");
var f = d + e;
alert(f);
会给你两个不同的输出:
5
5.859874482047999
正如其他人所提到的,您无法使用 parseInt()
解析美元和美分。
并且使用浮点数对任何事情来说都是一个坏主意financial/monetary。
大多数金融系统简单地以美分存储 prices/dollar 值,如果需要显示值,您可以编写一个函数为用户很好地格式化它。
function(cents) {
cents = +cents; // unary plus converts cents into a string
return "$" + cents.substring(0, cents.length - 2) + "." + cents.substring(cents.length - 2);
}
我有这个块,它从 Firebase 中提取项目的当前支付金额和当前支付的金额。然后应该将两者相加得到第三个变量。
出于某种原因,代码将美分从总数中删除。
singleRef.once("value", function(snapshot) {
var a = parseInt(snapshot.val().amounts.paid); // The amount already paid
var b = parseInt(invoice.payment.amount); // The amount being applied
var c = a + b;
console.log(c);
});
假设发生了以下情况:
a = 0;
b = 10.86;
The result in this code will be:
c = 10; // should be 10.86
假设发生了以下情况:
a = 10.00;
b = 10.86;
The result in this code will be:
c = 20; // should be 20.86
分是什么并不重要,它总是四舍五入以摆脱它们。我已经尝试将 .toFixed('2')
添加到所有变量,仅 a 和 b,以及 c。所有结果都相同,没有分。
怎么做!?在过去的几个小时里,我一直在尝试这样做,这可能很简单,但我无法弄清楚。这让我发疯!我正在使用 angularjs 和 firebase。
函数parseInt()
专门用于解析整数,因此,如果您给它3.14159
,它会返回给您3
。
如果要解析浮点值,请尝试 parseFloat()
。
例如下面的代码:
var a = parseInt("3.141592653589");
var b = parseInt("2.718281828459");
var c = a + b;
alert(c);
var d = parseFloat("3.141592653589");
var e = parseFloat("2.718281828459");
var f = d + e;
alert(f);
会给你两个不同的输出:
5
5.859874482047999
正如其他人所提到的,您无法使用 parseInt()
解析美元和美分。
并且使用浮点数对任何事情来说都是一个坏主意financial/monetary。
大多数金融系统简单地以美分存储 prices/dollar 值,如果需要显示值,您可以编写一个函数为用户很好地格式化它。
function(cents) {
cents = +cents; // unary plus converts cents into a string
return "$" + cents.substring(0, cents.length - 2) + "." + cents.substring(cents.length - 2);
}