Jump to content
  • 0

JS калькулятор


psywalker
 Share

Question

Приветствую!

Значит решил попробовать сделать калькулятор на JS, своими силами, т.е. руководствуясь только своими знаниями. Думаю, так будет лучше, так как в силу долгих мучений, это наверняка принесёт свои плоды.

Но вот всё-же в итоге попал в тупик и хочу узнать некоторые вещи, чтобы двинуться дальше.

(На код не смотрите, он ужасен, просто это первый вариант, второй уже надеюсь будет лучше)

Вопросы:

1) Как мне написать в условии if(), что типа Если в value у моего импута уже есть (допустим) две Точки (.) или один знак Минус (-), то больше поставить нельзя, сколько бы я не нажимал на эти кнопки?

2) Как мне кнопкой ( << ) тупо убрать последний символ из строки, при этом не нарушив работу калькулятора?

(Это кнопка для того, чтобы, Если я например случайно написал не то число, то стереть его)

3) После того, как я жму знак Равно (=), то у меня вроде-бы всё высчитывается, НО проблема в том, что далее чтобы считать новые числа, мне приходится всё сбрасывать, а мне хотелось-бы просто допустим продолжать дальше считать с получившегося результата. Как это сделать?

Ссылка:

http://www.psywalker.ru/Forum/JS/Primitive/calculat.html

Link to comment
Share on other sites

  • Answers 71
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

Не, мудрите что-то... 20% от 80 рублей допустим считается как 80*0.2=16 руб.

Термин процент образован от per cent - делить на 100, точнее даже просто "к 100". Значит, для вычисления делим проценты на 100 и умножаем на число, от которого нужно посчитать процент. И всё.

а с 1/5 это сильный мудрёж... а как вы представляете себе 21%? ))

Link to comment
Share on other sites

  • 0
Не, мудрите что-то... 20% от 80 рублей допустим считается как 80*0.2=16 руб.

Термин процент образован от per cent - делить на 100, точнее даже просто "к 100". Значит, для вычисления делим проценты на 100 и умножаем на число, от которого нужно посчитать процент. И всё.

а с 1/5 это сильный мудрёж... а как вы представляете себе 21%? ))

И я вот кстати так-же подумал, что мудрёж какой-то, ведь по идеее правда 20 делим на 100, и получаем 0.2, а потом умножаем их на 80 и итог 16.

И просто непонятно, откуда 1.5 взялось?

Link to comment
Share on other sites

  • 0
Тогда выходит, что нужно ещё нули убирать.

Да нет, rus говорит о том, что для пользователя достаточно набрать число, знак "х" потом второе число и знак "%" и сразу выводится результат. А на самом деле калькулятору надо будет после нажатия на знак "%" одно число разделить на 100, умножить на второе и вывести результат.

а если будет 21*81% какие нули будем убирать? ))

Link to comment
Share on other sites

  • 0
а с 1/5 это сильный мудрёж... а как вы представляете себе 21%? ))

Да, мудрёж, для разных случаев по разному, во-первых я написал - «в уме считаю», а не на калькуляторе.

Вы в уме можете быстро посчитать 21% от 80 ? 80*0,21= ? я быстро не могу, в уме приходится разбивать на 8*2,1= (8*2)+(8*0,1)=16,8. Ну опять-таки это арифметика «в уме», естественно что в программе так не делается там просто число*21%/100

хотя есть и не тревиальные задачи в калькуляторе например: 50 - 3% = ?

Виндовый калк будет отображать следущее:

набрали => увидели

50 => 50

-3 => 3

% => (тут оно посчитает 50*3/100) 1,5

= => 48,5

У других калькуляторов видел не савсем такую реакцию, и какая верная мне не извесна, но к логике виндового калка я привык

Link to comment
Share on other sites

  • 0

LunatiK

Дружище, а объясни мне плиз вот на таких же примерах

набрали => увидели

50 => 50

-3 => 3

% => (тут оно посчитает 50*3/100) 1,5

= => 48,5

Как вычисляется:

1) Квадратный корень

2) Степень числа

3) Синус

Link to comment
Share on other sites

  • 0
Да нет, rus говорит о том, что для пользователя достаточно набрать число, знак "х" потом второе число и знак "%" и сразу выводится результат. А на самом деле калькулятору надо будет после нажатия на знак "%" одно число разделить на 100, умножить на второе и вывести результат.

а если будет 21*81% какие нули будем убирать? ))

а какие тут (17.01) нули надо убирать и зачем?

Link to comment
Share on other sites

  • 0
LunatiK

Дружище, а объясни мне плиз вот на таких же примерах

Как вычисляется:

1) Квадратный корень

2) Степень числа

3) Синус

Эээ ну ты задал вопрос, я JS практически не знаю, но разве там нет этих функций ?

1) число^(1/2) - число в степе ни 1/2 и есть квадратный корень (аналогично и другие корни), можно ещё и через натуральный логорифм записать

2) куча алгоритмоф, так не опишешь , гугли вникай (вспоминай алгебру :) )

3) точно сказать не могу, но через експоненты его тоже можно выразить, но думаю это делается как-то проще

В JS должны быть встроенные функции для таких вещей, поэтому не бери в голову

Link to comment
Share on other sites

  • 0
Как вычисляется:

1) Квадратный корень

2) Степень числа

3) Синус

Ну какбэ объект Math все умеет...

1) Math.sqrt(x);

2) Math.pow(x, y); - (x в степени y)

3) Math.sin(x);

Сам недавно формулу извлечения корня n-ной степени искал через натуральный логарифм, ибо не был уверен (хотя вроде в школе давали), что 2 в степени 1/3 - то же самое что и корень 3 степени из 2.

вот она (javascript):

Math.exp(Math.log(x) / y); - (корень степени y из x)

Link to comment
Share on other sites

  • 0
вот она (javascript):

Math.exp(Math.log(x) / y); - (корень степени y из x)

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

Link to comment
Share on other sites

  • 0

Нее, а я почему спросил. Мне просто интересно сами шаги нажатия чисел, кнопок на калькуле, т.е. именно последовательность.

Вот покажу на примере процентов(20% от 80) по действиям.

1) Пользователь набрал 20

2) Пользователь набрал 80

3) Пользователь нажал % и получил ответ, так ведь?

В общем мне интересна последовательность этих вещей.

Как вычисляется:

1) Квадратный корень

2) Степень числа

3) Синус

Link to comment
Share on other sites

  • 0
Нее, а я почему спросил. Мне просто интересно сами шаги нажатия чисел, кнопок на калькуле, т.е. именно последовательность.

Вот покажу на примере процентов(20% от 80) по действиям.

1) Пользователь набрал 20

2) Пользователь набрал 80

3) Пользователь нажал % и получил ответ, так ведь?

В общем мне интересна последовательность этих вещей.

ты забыл про нажатие на "х" между 20 и 80...

Link to comment
Share on other sites

  • 0
Нее, а я почему спросил. Мне просто интересно сами шаги нажатия чисел, кнопок на калькуле, т.е. именно последовательность.

Вот покажу на примере процентов(20% от 80) по действиям.

1) Пользователь набрал 20

2) Пользователь набрал 80

3) Пользователь нажал % и получил ответ, так ведь?

В общем мне интересна последовательность этих вещей.

Не, не так.

20% от 80 это 80 * 20% - получил ответ.

Link to comment
Share on other sites

  • 0

Рано ещё за синусы браться, надо корявость убирать

арифметика:

Давим => видим

Сечас так:

1 => 1

+ => 1+

2 => 2+

+ => 2+

3 => 3+

= => 5+

Хотелось бы (возможно не только мне , а вообще для удобства):

1 => 1

+ => 1

2 => 2

+ => 3

3 => 3

= => 6

И вообще забавно:

3 => 3

- => 3-

9 => 9-

= => -6-

:)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy