#html #scripting #numbers #output #decimal
#HTML #сценарии #числа #вывод #десятичные
Вопрос:
Итак, у меня есть программа, которая печатает отчет html с некоторыми числами из программы. Выходное число включает 6 десятичных знаков, но я хочу ограничить его 2 десятичными знаками.. Я прочитал кучу статей о его кодировании, но мне не хватает базового понимания этого типа кодирования, мне нужна помощь в написании кода.
Код выглядит следующим образом в программе:
<HTML>
<P align="center">
<img src="image.png">
</P>
<FONT face="Tahoma" size=4 color="Blue">
<P align="center">Rapport</P>
</FONT>
<FONT face="Arial" size=2 color="Black">
<P align="center"><strong>{Date} {Time}</strong></P>
<TABLE border="1" align="center">
<TR>
<TH bgcolor="lightYellow">Vatn 1</TH>
<TH bgcolor="lightYellow">Vatn 2</TH>
<TH bgcolor="lightYellow">Salt</TH>
</TR>
<TR>
<TD bgcolor="#C6DEFF">{vatn1}</TH>
<TD bgcolor="#C6DEFF">{vatn2}</TH>
<TD bgcolor="#C6DEFF">{salt}</TH>
</TR>
</TABLE>
<button onclick="myFunction()">Prenta síðuna</button>
<script>
function myFunction() {
window.print();
}
</script>
<input type="button" align="center" value="Lukka síðu" onclick="self.close()">
</FONT>
</HTML>
И после печати готов к открытию в браузере:
<HTML>
<P align="center">
<img src="image.png">
</P>
<FONT face="Tahoma" size=4 color="Blue">
<P align="center">Rapport</P>
</FONT>
<FONT face="Arial" size=2 color="Black">
<P align="center"><strong>{Date} {Time}</strong></P>
<TABLE border="1" align="center">
<TR>
<TH bgcolor="lightYellow">Vatn 1</TH>
<TH bgcolor="lightYellow">Vatn 2</TH>
<TH bgcolor="lightYellow">Salt</TH>
</TR>
<TR>
<TD bgcolor="#C6DEFF">{1.000000}</TH>
<TD bgcolor="#C6DEFF">{2.000000}</TH>
<TD bgcolor="#C6DEFF">{3.000000}</TH>
</TR>
</TABLE>
<button onclick="myFunction()">Prenta síðuna</button>
<script>
function myFunction() {
window.print();
}
</script>
<input type="button" align="center" value="Lukka síðu" onclick="self.close()">
</FONT>
</HTML>
Итак, насколько я знаю, мне нужен скрипт для обработки числа, как он должен выглядеть и где в моем файле мне его разместить? Кроме того, в какой бы тег ни попал отредактированный номер, как мне вставить его в таблицу?
Заранее спасибо 🤓
Комментарии:
1. Привет @Elrike. Я не уверен, понял ли я, что вы имели в виду. но я думаю, вы хотите увидеть результат 1.11. мой ответ неполный, но в javascript есть простая функция для этого «.toFixed(2)»
2. Если вы имеете дело с финансовыми данными, вы должны знать, что эта функция может округлять числа
3. Это правильно. Я хочу увидеть 1.11
4. Данные имеют вес, и пользователь хочет меньше десятичных знаков, потому что данные не настолько точны, поэтому 6 знаков после запятой могут выглядеть так, будто они очень точные
5. В этом случае, я думаю, вы можете использовать функцию «toFixed» 🙂
Ответ №1:
Можете ли вы предоставить дополнительную информацию о программе, которую вы используете для этого, пожалуйста?
На базовом уровне (в зависимости от вашей программы) сценарии могут быть размещены на веб-странице между <script></script>
тегами.
Теперь, посмотрев на <td>{number}</td>
, я бы предположил, что это какой-то шаблон.
Если он может это сделать, попробуйте <td>{nuumber.toFixed(2)}</td>
Как уже упоминалось, использование toFixed(2)
финансовых данных может привести к неправильному округлению чисел.
Вне рамок этого вопроса, но в этой статье объясняется, почему.(Немного продвинутый, но связанный для тех, кто еще интересуется, почему!)
Я бы предложил лучший способ, но не зная, что вы используете, и среду, которая была бы слишком большим предположением.
Комментарии:
1. Программа просто создает текстовый файл, вставляя числа в отчет. Упомянутые вами теги скрипта используются в конце файла, но я где-то читал, что мне может понадобиться поместить скрипт ранее в коде. Я пытался возиться с функцией toFixed, но не смог заставить ее работать, я попробую ваше предложение и свяжусь с вами.
2. Можете ли вы поделиться полным / соответствующим кодом и обновить свои вопросы с его помощью? Тогда мы сможем помочь вам быстрее.
3. Я отредактировал свой вопрос, чтобы он содержал весь код, используемый программой для вставки значений в отчет. И как это выглядит после того, как программа подготовила отчет, при открытии в notes.
Ответ №2:
Я не уверен, как информация привязана к HTML, поэтому вы можете изменить ее после загрузки данных.
вы можете изменить этот блок:
<script>
function myFunction() {
window.print();
}
</script>
к этому; Это не очень хороший метод, но он работает как трюк:
/*Important to know (1)*/
<script src="jquery-3.5.1.min.js"></script>
<script>
function myFunction() {
window.print();
}
setTimeout(() => {
$("td").each((i, e) => {
e = $(e);
let data = e.html().replace("}", "").replace("{", "");
e.html(parseFloat(data).toFixed(2));
});
}, 1000);
</script>
(1) Загрузите jQuery и привяжите к нему HTML.
Также, если вы не хотите использовать jQuery, вы можете использовать чистый javascript следующим образом:
<script>
function myFunction() {
window.print();
}
setTimeout(() => {
let tags = document.getElementsByTagName("td");
for (let i = 0; i < tags.length; i ) {
let html = tags[i].innerHTML;
html = html.split("{").join("").split("}").join("")
tags[i].innerHTML = parseFloat(html).toFixed(2);
}
}, 1000);
</script>
Комментарии:
1. Будут ли оба из них также работать, если, скажем, десятичные дроби не все нули?