Ограничить десятичные числа в html и куда поместить скрипт

#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. Будут ли оба из них также работать, если, скажем, десятичные дроби не все нули?