停止 javascript 自动从十进制转换为字符串
Stop javascript automatically casting from decimal to string
我有以下一段代码:
if(netAnnualBilling == null){
netAnnualBilling = 0;
parseFloat(netAnnualBilling);
}
parseFloat(netAnnualBilling);
annualBillingCount = (annualBillingCount + netAnnualBilling);
parseFloat(annualBillingCount);
我的两个变量 netYearualBilling 和 YearalBillingCount 都是类型数字。但是,当我到达这一行时:
annualBillingCount = (annualBillingCount + netAnnualBilling);
javascript似乎将annualBillingCount转换为String类型,并将两个数字附加在一起,而不是按预期进行加减。例:
annualBillingCount = 0;
netAnnualBilling = -1403.30
The result of the above code will show annualBillingCount to be equal to : 0-1403.80
每次这些变量弹出时,我都尝试过ParseFloat,但我没有任何运气。这是怎么回事?
如果要确保变量用作数字,只需在一元加号运算符前面加上
:annualBillingCount = +annualBillingCount + +netAnnualBilling;
将强制将每个操作数视为一个数字。
编辑 下面是一个基本小提琴,使用以下代码显示添加了两个字符串,这些字符串具有一元强制转换的不同用途:
var onetwo = "12";
var threefour = "34";
alert(onetwo + threefour); // string + string, so "12" + "34" = "1234"
alert(+onetwo + threefour); // number + string, so 12 + "34" = "12" + "34" = "1234"
alert(onetwo + +threefour); // string + number, second will be coerced back to string, so "12" + "34" = "1234"
alert(+onetwo + +threefour); // number + number, so 12 + 34 = 46
parseFloat()
不会更改值,而是返回强制转换的值。 你需要:
netAnnualBilling = parseFloat(netAnnualBilling)
试试这个:
if(netAnnualBilling == null) {
netAnnualBilling = 0;
}
netAnnualBilling = parseFloat(netAnnualBilling);
annualBillingCount = parseFloat(annualBillingCount);
annualBillingCount += netAnnualBilling;
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象