var amount = vm.AMOUNT();
以上语句带小数点,我需要将此语句转换为Interger。(不带小数点)
答案 0 :(得分:4)
从您的评论中我得到的印象是,链接到之前类似问题的答案可能无法帮助您。所以,为了清楚起见:
原始问题:
我需要将此语句转换为Interger [sic]
Javascript没有区分整数和浮点数;只有Number
(read more on MDN)
有很多方法可以从数字中删除小数。例如:您可以使用Math.round()
,Math.ceil()
或Math.floor()
(如果您想从 n 转到 0 小数)。< / p>
var amount = vm.AMOUNT();
var roundedAmount = Math.round(amount); // As close as you'll get to an 'Integer'
评论#1 :
我在淘汰赛中问这不是在Jquery或Javascript中
jQuery和knockout是javascript库。诸如Math.round
之类的函数在javascript规范中,无论您包含哪些库,都可以使用。
评论#2 :
您可以使用前一个链接中的敲除扩展程序中提供的方法:knockoutjs.com/documentation/extenders.html查看“实例1” - 我
它没有说浮动到整数 - 你
我试图指出一个解决方案,该解决方案符合一种适用于淘汰赛的编码方式。
var amount = vm.AMOUNT();
对我来说,似乎vm.AMOUNT
是一个可以观察到的值,你设置了你不想要的值(即:小数点太多)。
如果要控制observable可以包含的值类型,可以使用extender
。这使您可以转换用于设置AMOUNT
值的任何值。如果你做需要十进制值和舍入值,这是另一种方法:
var roundedAmount = ko.computed(function() {
return Math.round(vm.AMOUNT());
});
vm.AMOUNT(12.34);
console.log(roundedAmount()); // Logs: 12