2016-05-19 2 views
-2
var amount = vm.AMOUNT(); 

Вышеуказанное заявление приходит с десятичной точкой, мне нужно, чтобы преобразовать это заявление Interger. (Без десятичной точки)преобразовать десятичное в целое число в KNOCKOUT

+0

Возможный дубликат [Как преобразовать число с плавающей запятой в целое число в JavaScript?] (HTTP://переполнение стека.com/questions/596467/how-do-i-convert-a-float-number-to-a-whole-number-in-javascript) – Jamiec

+0

Вы можете использовать метод, указанный в предыдущей ссылке внутри _knockout extender_: http: //knockoutjs.com/documentation/extenders.html Проверьте «Live Example 1» – user3297291

+0

Jamiec - Я прошу об этом в нокаут не в JQuery или Javascript. – Avi

ответ

4

Из ваших комментариев я получаю впечатление, что связь с предыдущие ответы на подобные вопросы могут не помочь вам. Таким образом, для ясности:

Оригинальный вопрос:

Мне нужно преобразовать это заявление 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 
+0

Спасибо за обновление Патрика Стил и Джамеца – Avi

Смежные вопросы