Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Прибавить 5% к цене и округлить до тысяч (https://javascript.ru/forum/misc/81261-pribavit-5%25-k-cene-i-okruglit-do-tysyach.html)

sega1821 30.10.2020 14:44

Прибавить 5% к цене и округлить до тысяч
 
Помогите пожалуйста. У меня вычисляется процент, но как его прибавить к числу и округлить до тысяч, я не понимаю.

<p class="pColor">
<span class="datePlus">25000</span>
</p>
<p class="pColor">
<span class="datePlus">30000</span>
</p>

$( ".datePlus" ).each(function() {
$( this ).html( parseInt($( this ).html()) /100 * 5 );
});

voraa 30.10.2020 15:08

$( this ).html( ( ( parseFloat($( this ).html()) * 1.05 / 1000 + 0.5) | 0 ) * 1000 );

рони 30.10.2020 15:14

sega1821,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script>
$(function() {
$( ".datePlus" ).each(function() {
var num = Number(this.innerHTML);
num *= 1.05;
num /= 1000;
num = Math.round(num);
num *= 1000;
num = num.toString().replace(/(?=\B(?:\d{3})+(?!\d))/g, ' ');
this.innerHTML = num
});
});
  </script>
</head>
<body>
<p class="pColor">
<span class="datePlus">25000</span>
</p>
<p class="pColor">
<span class="datePlus">30000</span>
</p>
</body>
</html>

sega1821 30.10.2020 15:42

Спасибо большое

sega1821 30.10.2020 15:44

Спасибо

voraa 30.10.2020 16:14

num /= 1000;
num = Math.trunc(num);
num *= 1000;

Это всегда округление в меньшую сторону
Так 12900 будет округлено до 12000, а не до 13000 (как это подразумевает понятие "округление")
Хотя, как надо автору, непонятно.

sega1821 30.10.2020 16:52

Спасибо, в любую сторону округление) Теперь столкнулся с проблемой, что бы число выводилось с пробелами после сотых и тысячных))

voraa 30.10.2020 17:06

Цитата:

Сообщение от sega1821
что бы число выводилось с пробелами после сотых и тысячных))

У вас же целые числа. Откуда там сотые и тысячные?
Поясните примером

sega1821 30.10.2020 17:19

<p class="pColor">Цена:
<span class="datePlus">25000</span>
</p>
<p class="pColor">Цена:
<span class="datePlus">30000</span>
</p>


$( ".datePlus" ).each(function() {
$( this ).html( ( ( parseFloat($( this ).html()) * 1.05 / 1000 + 0.5) | 0 ) * 1000 );
});



Результат:

Цена: 26000
Цена: 32000

Мне необходимо, что бы в результате получилось:

Цена: 26 000
Цена: 32 000

рони 30.10.2020 17:26

sega1821,
смотрите пост #3 снова.


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