У меня есть таблица, которая содержит пару ячеек, которые содержат простые числа (IE: 1.00, 1000.00, 10000.00). Я пытаюсь отформатировать содержимое ячейки, используя функцию «format» ниже. У меня был успех с этой функцией в другой области моего кода, но по какой-либо причине (причина, по которой я здесь), когда я пытаюсь передать содержимое ячеек таблицы, она не работает, как я ожидал.Почему typeof моя переменная является объектом, а не числом
Проблема в том, что тип содержимого моей ячейки - это «объект», а не «номер», поэтому он скатывается вправо с помощью оператора if и возвращает мне исходное значение. Есть ли способ заставить данные быть типом числа? Я думал, что var n = new Number(cellText);
будет делать трюк, однако typeof возвращается как объект. Смущенный.
В globalize.js:
Globalize.format = function(value, format, cultureSelector) {
culture = this.findClosestCulture(cultureSelector);
if (value instanceof Date) {
value = formatDate(value, format, culture);
}
else if (typeof value === "number") {
value = formatNumber(value, format, culture);
}
return value;
};
В моей странице:
$(document).ready(function() {
$('td[globalize="true"]').each(function() {
var $this = $(this);
var cellText = $this.text();
if (cellText != null) {
var n = new Number(cellText);
var v = Globalize.formatNumber(n, _gloNum[0]);
$this.text(v);
}
})
});
Это сработало отлично, спасибо! – HashTagDevDude
@hyperflow: добро пожаловать – Sarfraz
Это лучший ответ. Он правильно показывает, как правильно направить числовой примитив. Лучше никогда не использовать «новый номер». – benekastah