Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36

Функция процент в калькулторе

15.07.2016, 18:22. Показов 7606. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, делаю калькулятор на js, и осталось реализовать кнопку %. Но не знаю как.. Помогите с этим вопросом, вот код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html>
<head>
    <title>JavaScript</title>
    <meta charset="utf-8" />
    <script type="text/javascript" src="jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        function proverka(input) { 
            var value = input.value; 
            var rep = /[;":'a-zA-Zа-яА-Я]/; 
            if (rep.test(value)) { 
                value = value.replace(rep, ''); 
                input.value = value; 
            } 
        } 
        
        
        function addChar(input) {
            if(input.value == 0) return alert("Нельзя на ноль делить");
            if(input.value == 1) return 1;
        }
        
        function timer() {
            var s = Number(document.getElementById("timer").innerHTML);
            s++;
            document.getElementById("timer").innerHTML = s;
            setTimeout("timer()", 1000);
        }
        
        function date() {
            var date = new Date();
            var text = date.getFullYear();
            text += ".0" + Number(date.getMonth()+1);
            text += ".1" + date.getDay();
            text += "." + date.getHours();
            text += "." + date.getMinutes();
            text += "." + date.getSeconds();
            document.getElementById("niggus").innerHTML = text;
        }
    </script>
    <style>
        #calc * {font-size: 16px;}
        #calc table {border: solid 3px silver; border-spacing: 3px; background-color: #EEE; }
        #calc table td {border-spacing: 3px;}
        input.display {width: 212px; text-align: left; outline: none; color: #000;} 
        input[type= button] {width: 40px; height: 30px; background-color: #EEE; outline: none;}
        input.doit {width: 216px; background-color: #6A5ACD;}
        input.gray{background-color: #a9a9a9;}
        input.silver{background-color: #d3d3d3;}
        input.blue{background-color: #d3d3d3;}
        form {width: 236px;}
        .pp{margin-top: 15px; font-size: 22px; font-weight: bold; color: #00FF00;}
        .p{font-size: 17px; font-weight: bold; color: #00FF00; margin-top: 15px; margin-bottom: -10px;}
        #timer{font-size: 80px; margin: 0; color: #FF1493;}
        #sekundomer {background-color: #000; width: 228px; height: 192px; border: 3px solid silver; margin-left: 328px; margin-top: -198px; text-align: center;}
        #date_nigga {margin-left: 656px; margin-top: -198px;}
    </style>
</head>
<body onload="timer(this), date(this)">
    <form name="calculator" id="calc">
        <table>
            <tr>
                <td>
                    <input type="text" name="input" size="16" class="display" disabled placeholder="0" onkeyup="return proverka(this)" onsubmit="Checkform(this)" />
                </td>
            </tr>
            <tr>
                <td class="buttons">
                    <input type="button" name="skobka" value="(" class="gray" Onclick="calc.input.value += '('"/>
                    <input type="button" name="skobka" value=")" class="gray" Onclick="calc.input.value += ')'"/>
                    <input type="button" name="percent" value="%" class="gray" Onclick="">
                    <input type="button" name="clear" value="C" class="gray" OnClick="calc.input.value = ''"/>
                    <input type="button" name="clear_one" value="CE" class="gray" Onclick="calc.input.value = input.value.substring(0, input.value.length - 1)"/>
                    <br>
                    <input type="button" name="one" value="1" OnClick="calc.input.value += '1'"/>
                    <input type="button" name="two" value="2" OnClick="calc.input.value += '2'"/>
                    <input type="button" name="three" value="3" OnClick="calc.input.value += '3'"/>
                    <input type="button" name="add" value="+" class="silver" OnClick="calc.input.value += '+'"/>
                    <input type="button" name="sub" value="-" class="silver" OnClick="calc.input.value += '-'"/>
                    <br>
                    <input type="button" name="four" value="4" OnClick="calc.input.value += '4'">
                    <input type="button" name="five" value="5" OnClick="calc.input.value += '5'">
                    <input type="button" name="six" value="6" OnClick="calc.input.value += '6'">
                    <input type="button" name="mul" value="x" class="silver" OnClick="calc.input.value += '*'"/>
                    <input type="button" name="div"  value="/" class="silver" OnClick="addChar(calc.input.value += '/')">
                    <br>
                    <input type="button" name="seven" value="7" OnClick="calc.input.value += '7'">
                    <input type="button" name="eight" value="8" OnClick="calc.input.value += '8'">
                    <input type="button" name="nine" value="9" OnClick="calc.input.value += '9'">
                    <input type="button" name="zero" value="0" OnClick="calc.input.value += '0'"/>
                    <input type="button" name="tochka" value="." class="blue" Onclick="calc.input.value += '.'"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" name="doit" value="=" class="doit" OnClick="calc.input.value = eval(calc.input.value)"/>
                </td>
            </tr>
        </table>
    </form>
    <div id="sekundomer">
        <p class="p">Вы находитесь на сайте:</p>
        <br/>
        <span id="timer">-1</span>
        <br/>
        <p class="pp">Секунд</p>
    </div>
    <div id="date_nigga">
        <p>Вы зашли на сайт:</p>
        <p id="niggus" ></p>
        <p>Год.Месяц.День.Час.Минута.Секунда</p>
    </div>
</body>
</html>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2016, 18:22
Ответы с готовыми решениями:

О консольном калькулторе
Читая Страуструпа и некоторых других авторов, с удивлением узнал, что така проста вещь как калькултор реализуетс достаточно мутно. ...

Напишите программу, в которой использовалась бы функция ПРОЦЕНТ
Напишите программу, в которой использовалась бы функция Процент, возвращающая про¬цент от заданного числа. В качестве аргументов функции...

Вычислить процент положительных чисел, процент отрицательных чисел и процент нулей
1.Загадать случайно 100 целых чисел в диапазоне от -100 до 100. Вычислить процент положительных чисел, процент отрицательных чисел и...

12
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 18:36
Cestuh, а что она должна делать то?
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
15.07.2016, 18:47  [ТС]
Работать как в калькуляторе windows, не понимаю как такое реализовать, пару способов пробовал, писал функции, но чето никак.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 18:57
Cestuh, я линуксоид... как там в винде это работает?
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
15.07.2016, 19:05  [ТС]
Чтобы узнать процент от числа вводишь в калькуляторе нужное число вводишь число процента (к примеру 1000 * 35) и нажимаешь кнопку процент. Калькулятор посчитает процент от числа (результат конкретно в этом примере должен быть 350). Короче как здесь: https://www.google.ru/search?c... 0%BE%D1%80
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 19:56
Cestuh, эмм... ссылка нерабочая
а точнее рабочая только для вас

Добавлено через 43 секунды
Cestuh, можете просто показать что должно быть до этого процента и после?
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
15.07.2016, 21:43  [ТС]
Блин, на счет ссылки тупанул Ну вводишь число, нажимаешь на процент и множишь на другое число - таким образом узнать процент. Вот пример: (1000 % * 35 = 350)
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 22:03
ну теперь понятно...
вот такую функцию могу предложить
JavaScript
1
2
3
4
5
function persents(input){
    return input.replace(/((?:\d+\.)?\d+)\%/g, function(s, val){
        return val / 100;
    })
}
соответственно просто вот так сделаете на вашем равно и всё
JavaScript
1
calc.input.value = eval(persents(calc.input.value))
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
16.07.2016, 14:17
на обычном калькуляторе кнопка % используется после ввода второго операнда и после её нажатия высвечивается результат в процентах от первого операнда
нажимаем C 1000 + 35% (покажет 350) = (покажет 1350) -- к числу прибавили 35 процентов числа
нажимаем C 1000 - 45% (покажет 450) = (покажет 550) -- от числа отняли 45 процентов числа
нажимаем C 1000 * 15% (покажет 150) = (покажет 150000) -- число умножили на 15 процентов числа
нажимаем C 1000 / 25% (покажет 250) = (покажет 4) -- число разделили на 25 процентов числа


при нажатии на кнопку % после первого операнда она работает как С (т.е. обнуляет поле)
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
17.07.2016, 00:17  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
ну теперь понятно...
вот такую функцию могу предложить
JavascriptВыделить код
1
2
3
4
5
function persents(input){
* * return input.replace(/((?:\d+\.)?\d+)\%/g, function(s, val){
* * * * return val / 100;
* * })
}
соответственно просто вот так сделаете на вашем равно и всё
JavascriptВыделить код
1
calc.input.value = eval(persents(calc.input.value))
Не идет..
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
20.07.2016, 00:47  [ТС]
Не получилось, но у меня есть вопрос, ты вставлял в мой код свою функцию? Пробовал на деле, если нет, попробуй, может быть я что-то путаю? Заранее спасибо.
0
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 549
Записей в блоге: 1
10.10.2016, 14:21
kalabuni, здравствуйте, можете помочь с реализацией кнопки в моем калькуляторе?

Добавлено через 23 минуты
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 a = 0;
      d = '';
function fn(p)
  {
     a = parseFloat(document.getElementById('p1').value);
     d = p;
     document.getElementById('p1').value='';
  }
     function doit()
  {
 
var b = parseFloat(document.getElementById('p1').value);
if (d=='+') {r = a + b;}
else {
     if (d=='-') {r=a-b;}
         else {
              if (d=='*') {r=a*b;}
                  else {
                       if (d=='/') {r=a/b;}
                           else {
                                if (d=='sqrt') {r=Math.sqrt(a);}
                                                                else {
                                         if (d=='1/a') {r=1/a;}
                                                                                    else (d=='a*n'
                                      }
                             }
                    }
           }
  }
    document.getElementById('p1').value = r;
  }
    function cl()
  {
    a = 0;
    d = '';
    document.getElementById('p1').value='0';
  }
    
function deleteChar() 
  {
            var answer = document.getElementById('p1').value;
            answerlength = answer.length;
            answer = answer.substring(0, answerlength - 1);
            document.getElementById('p1').value=answer;
  }
    
 
function addd(dg)
  {
      if(dg=='sqrt')
    {
            var sq = document.getElementById('p1').value;
            var d=Math.sqrt(sq);
            document.getElementById('p1').value='';
            document.getElementById('p1').value=d;
            return;
  }
            else if(dg=='1/a')
    {
          var sq = document.getElementById('p1').value;
            var d=1/sq;
            document.getElementById('p1').value='';
            document.getElementById('p1').value=d;
            return;
  }
      else if(document.getElementById('p1').value==0)
    {
            document.getElementById('p1').value = '';
  }
            document.getElementById('p1').value += dg;
      
  }
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<form action="">
<input type="text" id="p1" name="p1" value="0"/>
<br>
 
<br>
<input type="button" value="1" onclick="addd('1');" />
<input type="button" value="2" onclick="addd('2');" />
<input type="button" value="3" onclick="addd('3');" />
<input type="button" value="+" onclick="fn('+');" /><br />
<input type="button" value="4" onclick="addd('4');" />
<input type="button" value="5" onclick="addd('5');" />
<input type="button" value="6" onclick="addd('6');" /> 
<input type="button" value="-" onclick="fn('-');" /><br />
<input type="button" value="7" onclick="addd('7');" />
<input type="button" value="8" onclick="addd('8');" />
<input type="button" value="9" onclick="addd('9');" /><br />
<input type="button" value="0" onclick="addd('0');" />
<input type="button" value="1/a" onclick="addd('1/a');" />
<input type="button" value="C" onclick="cl();" />
<input type="button" value="=" onclick="doit();" />
<input type="button" value="Back Space" onClick="deleteChar()"><br>
<input type="button" value="*" onclick="fn('*');" />
<input type="button" value="/" onclick="fn('/');" /> 
<input type="button" value="sqrt" onclick="addd('sqrt');" />
 
 
</form>
0
0 / 0 / 0
Регистрация: 22.06.2015
Сообщений: 36
12.10.2016, 15:54  [ТС]
Цитата Сообщение от Mr.Gadget Посмотреть сообщение
здравствуйте, можете помочь с реализацией кнопки в моем калькуляторе?
Попробуй мою функцию
JavaScript
1
2
3
4
5
6
7
function persent(input) {
            var x = input.value.split("*");
            var y = x[0];
            x = x[1];
            var s = x * y / 100;
            input.value = s;
        }
HTML5
1
<input type="button" name="percent" value="%" class="gray" Onclick="persent(calc.input)">
P.S. Чтобы найти процент от числа (по этой функции) нужно число из которого хотите узнать процент помножить на число процента и нажать кнопку процент (1000*35%=350)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2016, 15:54
Помогаю со студенческими работами здесь

Вычислить процент положительных чисел, процент отрицательных чисел и процент нулей
В цикле с клавиатуры вводятся 10 целых чисел. Вычислить процент положительных чисел, процент отрицательных чисел и процент нулей....

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

Если в input введен процент от 1 до 100, в другую ячейку таблицы вывести процент от заданного числа
Как сделать так чтоб если в инпут ввести процент от 1 до 100, то в другую ячейку таблицы выведется процент от заданного числа ...

Написать программу, которая предлагает пользователю ввести 10 чисел, вычисляет процент положительных и отрицательных чисел и процент нулей и выводи
помогите =) написать программу, которая предлагает пользователю ввести 10 чисел, вычисляет процент положительных и отрицательных чисел и...

Определить процент выполнения плана по каждому месяцу и процент выполнения годового плана
Известны плановый и фактический выпуск продукции (в тоннах) по месяцам года. Определить процент выполнения плана по каждому месяцу и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru