Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 11.02.2018
Сообщений: 13
1

перевод числа в денежный эквивалент

21.04.2018, 14:09. Показов 2956. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделайте страницу с несколькими (не менее пяти) одностроковыми полями для ввода текста. Далее обеспечьте такую возможность: если человек набрал в некотором поле число и перешел в другое поле, в оставляемом поле число должно автоматически преобразоваться в "денежный" вид - рррр.кк

Например, если набрано 12, должно получиться 12.00, набрано 1.3, должно получиться 1.30, и т.д.

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

Часть задания сделана, значения переводятся в денежный, но необходимо сделать, чтобы при записи значения в поле все происходило, а не в коде и при нажатии на другое поле значение менялось в предыдущем поле, вот вариант кода:
"use strict";

(function(){
var priceSet;

priceSet = function(data){
/*
* В переменной price приводим получаемую переменную в нужный вид:
* 1. принудительно приводим тип в число с плавающей точкой,
* учли результат 'NAN' то по умолчанию 0
* 2. фиксируем, что после точки только в сотых долях
*/
var price = Number.prototype.toFixed.call(parseFloat(data) || 0, 2),
//заменяем точку на запятую
price_sep = price.replace(/(\D)/g, ","),
//добавляем пробел как разделитель в целых
price_sep = price_sep.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ");

return price_sep + ' руб.';
};

//Test
priceSet('324'); // 324,00 руб.
priceSet('3242333238'); // 3 242 333 238,00 руб.
priceSet('323234424sa323'); // 323 234 424,00 руб.
priceSet(324.3232); // 324,32 руб.
priceSet('324.as232'); // 324,00 руб.
})();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2018, 14:09
Ответы с готовыми решениями:

Ошибка сегментирования. Перевод числа в строковый эквивалент
Всем доброго времени суток. Вот и столкнулся я с проблемой которая требует от меня просить помощь у...

Нужно написать программу перевода двоичных цифр в их шестнадцатиричный эквивалент (перевод числа оформить в виде функции)
как написать эту программу в C++

Перевод символа в его числовой эквивалент
Если ли в java функция, которая переводит символ в его целочисленное значение?

Считая последовательность 16-ричной записью натурального числа, вывести десятичный эквивалент данного числа
Пользователь вводит некоторую последовательность,состоящую только цифр 0 – 9 и букв A – F. Считая...

4
Всегда онлайн
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
21.04.2018, 17:37 2
krestik2099,

HTML5
1
2
3
4
<input type="text" class="money-edit">
<input type="text" class="money-edit">
<input type="text" class="money-edit">
...
Javascript
1
2
3
4
5
6
7
8
9
function handler() {
  this.value = priceSet(this.value);
}
 
var elems= document.getElementsByClassName("money-edit");
 
for (var i = 0; i < classname.length; i++) {
    elems[i].addEventListener('blur', handler, false);
}
0
0 / 0 / 0
Регистрация: 11.02.2018
Сообщений: 13
21.04.2018, 21:07  [ТС] 3
Данный код не работает.
0
Всегда онлайн
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
21.04.2018, 23:48 4
krestik2099, упс, опечатка вышла:

Javascript
1
2
3
4
5
var elems= document.getElementsByClassName("money-edit");
 
for (var i = 0; i < elems.length; i++) {
    elems[i].addEventListener('blur', handler, false);
}
0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
22.04.2018, 09:40 5
HTML5
1
2
3
4
<input type="text" class="money-edit">
<input type="text" class="money-edit">
<input type="text" class="money-edit">
...
Javascript
1
2
3
4
5
6
7
8
9
10
11
let inp = document.querySelectorAll('.money-edit');
function priceSet(elem) {
    let price = parseFloat(elem.value.replace(',', '.')).toFixed(2);
    if(isNaN(price)) {
        elem.value = ''; 
        elem.focus();
    } 
    else
        elem.value = price;
}
inp.forEach(el => el.addEventListener('blur', () => priceSet(el)));
0
22.04.2018, 09:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2018, 09:40
Помогаю со студенческими работами здесь

Преоброзование числа в денежный формат
У меня есть число, например 1529674,43 как мне его преобразовать в след вид: 1 529 674,43 или...

Преевод числа в денежный формат
Разработайте программу, которая преобразует введенное с клавиатуры дробное число в денежный формат....

Денежный формат целого числа
Доброго времени суток. Столкнулся с простой задачкой, но тем не менее самостоятельно решить не...

Преобразование числа в денежный формат (Си++)
Только начал изучать язык Си++ и пока что не очень понимаю его. Помогите разобраться. Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru