2016-04-08 19 views
0

Jetzt Dezimalstelle ist 2, ich möchte es je nach Variable ändern, ist es möglich?Dezimalstellen, wenn Zahlenformat in Excel

cell.v = parseFloat(cell.v), 
cell.t = 'n'; 
cell.z = XLSX.SSF._table[2]; // 0.00 -> want to change to 0.000 
+1

Mögliches Duplikat [JavaScript einen Schwimmer auf 2 Dezimalstellen Anzeige] (http://stackoverflow.com/questions/3163070/javascript-displaying-a-float-to-2-decimal-places) – Rayon

+0

@RayonDabre es ist nicht doppelt, es geht um Excel-Formatierung, nicht nur Formatierung Nummer – karaxuna

+1

Wenn ja, das ist wirklich nicht die Möglichkeit, die Frage zu stellen. – Rayon

Antwort

2

verwenden Nur .toFixed() Methode:

cell.z = Number(XLSX.SSF._table[2]).toFixed(3);//0.000 
+0

Wert von 'XLSX.SSF._table [2]' ist '" 0.00 "', so wird der Fehler geworfen XLSX.SSF._table [2] .toFixed ist keine Funktion'. Ich habe versucht 'cell.z =" 0.000 ";' aber es funktioniert nicht. – karaxuna

+0

Zuerst müssen Sie es in die Nummer konvertieren. Z.B. Number ("0.00"). ToFixed (3) –

+0

Und Sie erhalten "0.000". Ich sagte, es geht nicht. – karaxuna

2

nur eine Kombination von parseFloat() verwenden und toFixed():

cell.z = parseFloat(XLSX.SSF._table[2]).toFixed(3); 

ParseFloat() ist speziell Strings in Zahlen zu drehen.

1

Wie ich aus den Kommentaren verstehe, möchte das OP eine XLSX-Datei mit der js-xlsx Bibliothek, mit einer Zahl mit 3 Dezimalzahlen gerendert schreiben.

Ich erreiche dies wie folgt. Ich fügen Sie den Formatcode "0.000" zu XLSX.SSF._table:

XLSX.SSF._table[164] = '0.000' 

Dann cell.z = '0.000' funktionieren sollte.

Ich weiß nicht, warum der Index 164. Wenn es ein anderes Format, um es zu 165 geht, dann 166 usw.