単純な数値(IE:1.00,1000.00,10000.00)を含む2つのセルを持つテーブルがあります。私は、以下の 'format'関数を使用してセルの内容をフォーマットしようとしています。私はこの関数をコードの別の領域で成功させましたが、テーブルセルの内容をフィードしようとすると何らかの理由で(私がここにいる理由)、期待どおりに動作しません。なぜ型変数がオブジェクトで、数字ではないのですか
問題は、セルの内容の型が '数値'ではなく 'オブジェクト'であるため、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
これは最高の答えです。数値プリミティブに正しくキャストする方法を正しく示しています。 'new Number'を使わないのが最善です。 – benekastah