Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   ява-скрипт округление чисел после запятой (https://javascript.ru/forum/dom-window/54839-yava-skript-okruglenie-chisel-posle-zapyatojj.html)

_Eldar_ 02.04.2015 20:36

ява-скрипт округление чисел после запятой
 
1.36363636364<br><table><tr><td>Число</td><td>129.36363636364</td><td>3.3643534564</td><td >56.818181818182</td></tr></table>
помогите с ява-скриптом - чтобы длинные числа на странице после точки округлял до тысячных (убирал-удалял-скрывал числа идущие после третьей цифры после точки)

ruslan_mart 02.04.2015 20:44

document.body.innerHTML = document.body.innerHTML.replace(/(\d+\.\d{3})\d+/gm, '$1');

_Eldar_ 02.04.2015 20:50

спасибо

Aetae 02.04.2015 22:10

Только если на странице есть любые другие скрипты - вышеприведённый всё сломает.)
Ruslan_xDD, не стыдно тебе такой ужас писать?)

рони 02.04.2015 22:29

_Eldar_,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
   $('td').text(function(i, str) {
   return +str ? (+str).toFixed(3):str;
})
});
  </script>
</head>

<body>
<table><tr><td>Число</td><td>129.36363636364</td><td>3.3643534564</td><td >56.818181818182</td></tr></table>


</body>

</html>

_Eldar_ 02.04.2015 22:40

уважаемый рони - а если еще цифры вне table - тогда как?

soltx 02.04.2015 22:52

как вариант указать новый селектор $('td') <----- # . elements ... (jQuery)

рони 02.04.2015 22:55

_Eldar_,
добавить те элементы в которых есть цифры -- вариант конечно для цифр без текста - но что вы дали то получили

рони 02.04.2015 23:05

_Eldar_,
найдёт всех и пристрелит округлит
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
    $(function() {
    $("*").contents().filter(function() {
        return 3 == this.nodeType
    }).each(function() {
        var a = this.data;
        this.data =  a.replace(/\d+\.\d+/g, function(a) {
            return (+a).toFixed(3)
        })
    })
});
  </script>
</head>

<body>
<table  id="msgFlash"><tr><td>Число</td><td>129.36363636364</td><td>3.3643534564</td><td >56.818181818182</td></tr></table>
всякая фигня 123.456789

</body>

</html>

ruslan_mart 03.04.2015 07:56

Aetae, не-а, на всей странице же. Если бы автор привёл нормальный пример, где показывается в каких именно тэгах нужно применить данную операцию, то пожалуйста. А так по всем тэгам на странице пробегаться тоже рукожопие. :)


Часовой пояс GMT +3, время: 15:05.