Как отображать число с пробелом?

Ссылка скопирована
1 ответ

Есть код, который при клике по инпуту берет его дата атрибут и плюсует к основной цене
Так вот, все нормально работает до тех пор пока цена будет без пробела. (20000). Есть у кого мысли как сделать чтобы цену брать с пробелом (20 000) и плюсовать к ней? Сейчас нули отсекаются и берется только цена до пробела

function calcPrice(elem, startPrice) {     // const inputWrapper = document.querySelector('.cart-js');     const inputItems = elem.querySelectorAll(".card-option");     const price = elem.querySelector("[data-total]");     price.dataset.total = parseInt(startPrice);     let currentPrice = parseInt(startPrice);      inputItems.forEach(function (item) {         const priceEl = item.querySelector("[data-price]");         // const price = document.querySelector('[data-total]');         if (priceEl.checked) {             currentPrice += parseInt(priceEl.dataset.price);             const total = (price.dataset.total = currentPrice);         }     });     // console.log(totalPrice) }

function calcPrice(elem, startPrice) { // const inputWrapper = document.querySelector('.cart-js'); const inputItems = elem.querySelectorAll(".card-option"); const price = elem.querySelector("[data-total]"); price.dataset.total = parseInt(startPrice); let currentPrice = parseInt(startPrice); inputItems.forEach(function (item) { const priceEl = item.querySelector("[data-price]"); // const price = document.querySelector('[data-total]'); if (priceEl.checked) { currentPrice += parseInt(priceEl.dataset.price); const total = (price.dataset.total = currentPrice); } }); // console.log(totalPrice) }

Дополнительно:

price.dataset.total = parseInt(startPrice.replaceAll(' ', ''));

price.dataset.total = parseInt(startPrice.replaceAll(' ', ''));

  • Понял, это заменит вхождение строки, а как потом отобразить с пробелом?
  • anmkh, Number.prototype.toLocaleString()

Ответы:

Вот так можно:

function display_with_spaces(num) {       let str = String(num);       let left = str.length % 3;       let res = '';       let ind = 0;       if(left > 0) {              res = str.substr(ind, left) + ' ';              ind += left;              while(ind < str.length) {                     res += str.substr(ind, 3);                     if(str.length - ind > 3) res = res + ' ';                     ind += 3;              }       }       else {              while(ind < str.length) {                    res += str.substr(ind, 3);                    if(str.length - ind > 3) res = res + ' ';                    ind += 3;             }       }       return res; }

function display_with_spaces(num) { let str = String(num); let left = str.length % 3; let res = ''; let ind = 0; if(left > 0) { res = str.substr(ind, left) + ' '; ind += left; while(ind < str.length) { res += str.substr(ind, 3); if(str.length - ind > 3) res = res + ' '; ind += 3; } } else { while(ind < str.length) { res += str.substr(ind, 3); if(str.length - ind > 3) res = res + ' '; ind += 3; } } return res; }

Так вот, все нормально работает до тех пор пока цена будет без пробела.

Вы вкурсе как работают числа? Если вы ставите пробел, тогда ваше число уже не является числом, а является строкой

Вы должны работать с числами в оригинальном виде, т.е. без пробелов, таких стандартнов придерживаются программисты. При выводе вы можете их выводить как хотите, хоть на шахматной доске, но изначально вы должны работать с числами в таком виде, как они есть

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Виктор Sys Ответ

Для отображения числа с пробелами в PHP можно воспользоваться функцией number_format(). Эта функция форматирует число с разделителями тысяч, десятичными знаками и опциональным знаком валюты.

Пример использования функции number_format() для отображения числа с пробелами:

$number = 1000000;
$formatted_number = number_format($number);
echo $formatted_number; // Выведет "1 000 000"

$number = 1000000; $formatted_number = number_format($number); echo $formatted_number; // Выведет "1 000 000"

Если вы хотите отформатировать число с определенным количеством десятичных знаков, вы можете передать дополнительные параметры функции number_format():

$number = 1234.5678;
$formatted_number = number_format($number, 2); // Выведет "1 234.57"
echo $formatted_number;

$number = 1234.5678; $formatted_number = number_format($number, 2); // Выведет "1 234.57" echo $formatted_number;

Таким образом, функция number_format() позволяет удобно форматировать числа с пробелами для улучшения их читаемости. Надеюсь, это поможет вам решить вашу проблему!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно