Wil*_*son 1 javascript string variables
我有变量y,这是一个小计.它的值根据html的情况而有所不同,但在整个脚本中我声明它是这样的:
var y = 21.78;
Run Code Online (Sandbox Code Playgroud)
为什么在我的最后一个等式中,我将总和加起来,当我想添加值时,它将它们视为字符串?
var tax = (0.055*y).toFixed(2);
var totalprice = y+tax;
/* totalprice holds "21.781.20" instead of 22.98 */
Run Code Online (Sandbox Code Playgroud)
Mik*_*sen 10
根据:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed
toFixed() 收益:
数字的字符串表示形式,不使用指数表示法,并且在小数位后面具有正确的数字位数.
因此,y+tax被转换为字符串,因为其中一个操作数是一个字符串.
在我看来,这是有道理的,因为Javascript的内部数字类型不能存储特定数量的小数位数,因此字符串将是最适合存储它的数据结构.
我会建议你在调用之前完成所有添加toFixed(),因为该方法最适合格式化显示输出.
var taxRate = 0.055;
var subtotal = 21.78;
var tax = (taxRate * subtotal).toFixed(2),
totalprice = ((1+taxRate) * subtotal).toFixed(2);
document.write(totalprice);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4845 次 |
| 最近记录: |