Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Два знака после запятой и не только (https://javascript.ru/forum/jquery/59915-dva-znaka-posle-zapyatojj-i-ne-tolko.html)

Knick_S 02.12.2015 23:09

Два знака после запятой и не только
 
Добрый день, уважаемые знатоки!
Прошу помощи в решении проблемы. Задача в том, что бы обрезать число вида -
35,5265485

в такой вид -
35,52

Кажется, что toFixed(2) поможет в этом случае, но задача в том, что бы число вида -
35

имело вид не -
35,00

а -
35

Благодарю за внимание!

рони 02.12.2015 23:26

Knick_S,
чисел с запятой не бывает :)

рони 02.12.2015 23:44

Два знака после запятой
 
Knick_S,
<script>
function fn(a) {
    a = +("" + a).split(",").join(".");
    return (a | 0) + +(a - (a | 0)).toFixed(2)
};
document.write(fn(35.00005) +'<br>')
document.write(fn('35,5265485') +'<br>')
  </script>

Knick_S 03.12.2015 00:19

Благодарю! По поводу запятых - запомню ;)

Knick_S 03.12.2015 01:26

var a = 12
var b = 6.6
var c = a * b
fn(c)
alert(c); // 79.19999999999999

var a = 12
var b = 6.55555
var c = a * b
fn(c)
alert(c); // 78.72

Выяснил случайным набором. Можете поправить? =)

И на выводе хотелось бы иметь разделение запятой, так по макету.
Я делаю это так -
var totalb = $(this).closest(".li_par").find(".row9").html().re place(".", ",");
$(this).closest(".li_par").find(".row9").html(tota lb);

Но думаю, что можно проще. Но вот так -
total.replace(".", ",")

или
var total_b = total.replace(".", ",")

почему-то не работает ( пишет total.replace(".", ",") не является функцией ).

Буду очень благодарен! =)

рони 03.12.2015 01:46

Цитата:

Сообщение от Knick_S
Можете поправить? =)

что поправить?

Knick_S 03.12.2015 02:02

Цитата:

Сообщение от рони (Сообщение 398486)
что поправить?

var a = 12
var b = 6.6
var c = a * b
fn(c)
alert(c); // 79.19999999999999

Что бы после точки было лишь две цифры.

рони 03.12.2015 02:07

Цитата:

Сообщение от Knick_S
Что бы после точки было лишь две цифры.

а сейчас сколько? не две разве?

Knick_S 03.12.2015 02:14

Я ж описал, что при обработке выражения 12*6.6 вашей функцией, выходит 79.19999999999999.

Knick_S 03.12.2015 02:19

Такой чувство, что вы не видите код, который я пишу.

рони 03.12.2015 02:30

Knick_S,
Цитата:

Сообщение от Knick_S
Я ж описал, что при обработке выражения 12*6.6 вашей функцией, выходит 79.19999999999999

ой а у меня почемуто результат функции 79,2
<script>
function fn(a) {
    a = +("" + a).split(",").join(".");
    a = (a | 0) + +(a - (a | 0)).toFixed(2);
    return ("" + a).split(".").join(",")
};
var a = 12;
var b = 6.6;
var c = a * b;
document.write(fn(c) +'<br>' + c)
 </script>

рони 03.12.2015 02:31

:cray:
<!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(){
     function fn(i,a) {
    a = +("" + a).split(",").join(".");
    a =  a.toFixed(2) * 10/10 ;
    return ("" + a).split(".").join(",")
};

       var s = $(".row9");
       s.text(fn);
});


  </script>
</head>

<body>
<ul>
    <li class="row9">35,5265485</li>
    <li class="row9">35,00</li>
    <li class="row9">79.19999999999999</li>
    <li class="row9">6.55555</li>
    <li class="row9">78.72</li>
</ul>


</body>

</html>

Knick_S 03.12.2015 14:04

Большая благодарность! Действительно работает, то я у себя в коде что-то лишнее накрутил, на ночь глядя.


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