2017-01-09 2 views
1

В настоящее время я заполняю таблицу HTML данными JSON, которые я получаю с моего сервера.научная нотация, отображаемая как десятичная в таблице

JSON выглядит следующим образом:

[ 
    { 
     "field1":"someString", 
     "value":6e-21 
    }, 
    { 
     "field1":"someOtherString", 
     "value":1e-4 
    } 
] 

Но в HTML-таблицы, поле «значение» получить иногда преобразуется в десятичной системе счисления, если число вписывается в DIV

вот fiddle демонстрирующее вопрос

Я хотел бы иметь все значения в научной нотации в HTML-таблицы (например, в моих данных в формате JSON)

ответ

1

Используйте функцию toExponential() следующим образом:

data[result].value.toExponential() 

От MDN:

Метод toExponential() возвращает строку, представляющую Number объект в экспоненциальной записи ,

Вот полный фрагмент:

var data = [{ 
 
    "field1": "someString", 
 
    "value": 6e-21 
 
}, { 
 
    "field1": "someOtherString", 
 
    "value": 1e-4 
 
}]; 
 

 
var htmlContent = "<tbody>"; 
 

 
for (let result in data) { 
 
    htmlContent += "<tr><td>" + data[result].field1 + "</td><td>" + data[result].value.toExponential() + "</td></tr>"; 
 
} 
 

 
document.getElementById('table').innerHTML += htmlContent + "</tbody>";
table, 
 
th, 
 
td { 
 
    border: 1px solid black; 
 
}
<p>generated from JSON: </p> 
 
<table id="table"> 
 
    <thead> 
 
    <tr> 
 
     <td>field1</td> 
 
     <td>value</td> 
 
    </tr> 
 
    </thead> 
 
</table> 
 
<p>expected:</p> 
 
<table> 
 
    <thead> 
 
    <tr> 
 
     <td>field1</td> 
 
     <td>value</td> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td>someString</td> 
 
     <td>6e-21</td> 
 
    </tr> 
 
    <tr> 
 
     <td>someOtherString</td> 
 
     <td>1e-4</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

2

Преобразование всех значений в строку

var data = [{ 
    "field1": "someString", 
    "value": "6e-21" 
}, { 
    "field1": "someOtherString", 
    "value": "1e-4" 

}];

Работа скрипку: - https://jsfiddle.net/e27w2poa/4/

+0

Забыл сказать, что мне нужно иметь возможность сортировать данные в таблице, поэтому мне нужно держать их как двойные. В любом случае, спасибо за ответ – felix

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