var amount = vm.AMOUNT();
Вышеуказанное заявление приходит с десятичной точкой, мне нужно, чтобы преобразовать это заявление Interger. (Без десятичной точки)преобразовать десятичное в целое число в KNOCKOUT
var amount = vm.AMOUNT();
Вышеуказанное заявление приходит с десятичной точкой, мне нужно, чтобы преобразовать это заявление Interger. (Без десятичной точки)преобразовать десятичное в целое число в KNOCKOUT
Из ваших комментариев я получаю впечатление, что связь с предыдущие ответы на подобные вопросы могут не помочь вам. Таким образом, для ясности:
Оригинальный вопрос:
Мне нужно преобразовать это заявление Interger [так в оригинале]
Javascript не имеет различия между целыми числами и плавает; есть только Number
(read more on MDN)
Существует множество способов удаления десятичного числа из числа. Например: вы можете использовать Math.round()
, Math.ceil()
или Math.floor()
(если вы хотите перейти от n к десятичные знаки).
var amount = vm.AMOUNT();
var roundedAmount = Math.round(amount); // As close as you'll get to an 'Integer'
Комментарий # 1:
Я прошу это в нокаут не в Jquery или Javascript
JQuery и нокаута являются JavaScript библиотеки. Такие функции, как Math.round
, содержатся в спецификации javascript и могут использоваться независимо от того, в какие библиотеки вы включаете.
Комментарий # 2:
Вы могли бы использовать метод, предусмотренный в предыдущей ссылке внутри нокаута удлинителя: knockoutjs.com/documentation/extenders.html Проверьте "Live Пример 1" - мне
это не говорит о поплавка к interger - вы
Я пытался указать вам на решение, которое соответствует способу кодирования, который хорошо работает с нокаутом.
var amount = vm.AMOUNT();
Мне кажется, что vm.AMOUNT
является наблюдаемым, который устанавливается со значениями вы не хотите (т.е .: есть слишком много знаков после запятой).
Если вы хотите контролировать типы значений, которые могут содержать ваши наблюдаемые, вы можете использовать extender
. Это позволяет конвертировать любое значение, которое используется для установки значения AMOUNT
. Если вы сделать необходимость как десятичное значение, а также округленным значением, здесь другой подход:
var roundedAmount = ko.computed(function() {
return Math.round(vm.AMOUNT());
});
vm.AMOUNT(12.34);
console.log(roundedAmount()); // Logs: 12
Спасибо за обновление Патрика Стил и Джамеца – Avi
Возможный дубликат [Как преобразовать число с плавающей запятой в целое число в JavaScript?] (HTTP://переполнение стека.com/questions/596467/how-do-i-convert-a-float-number-to-a-whole-number-in-javascript) – Jamiec
Вы можете использовать метод, указанный в предыдущей ссылке внутри _knockout extender_: http: //knockoutjs.com/documentation/extenders.html Проверьте «Live Example 1» – user3297291
Jamiec - Я прошу об этом в нокаут не в JQuery или Javascript. – Avi