繁体   English   中英

Javascript / HTML计算器,需要其他方法来获得结果

Javascript / HTML calculator, need something else method for result

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在中学,现在我们学习HTML和JavaScript。 我正在制作一个计算器(在互联网的帮助下),我找到了eval()函数。 我们基本上没有学到这一点,所以我需要将其改为其他东西。 这是我的计算器的代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Számológép</title> </head> <body> <script> function beker(szam) { document.szamologep.eredmeny.value = document.szamologep.eredmeny.value + szam; } function szamol() { var a = document.szamologep.eredmeny.value; if (a) { document.szamologep.eredmeny.value = eval(a) } } </script> <h2 align="center">Számológép!</h2> <form name="szamologep"> <table border="2" align="center"> <tr> <td colspan="4"><input type="text" name="eredmeny"/></td> </tr> <tr> <td><input type="button" value="1" onclick="beker(1)"/></td> <td><input type="button" value="2" onclick="beker(2)"/></td> <td><input type="button" value="3" onclick="beker(3)"/></td> <td><input type="button" value="+" onclick="beker('+')"/></td> </tr> <tr> <td><input type="button" value="4" onclick="beker(4)"/></td> <td><input type="button" value="5" onclick="beker(5)"/></td> <td><input type="button" value="6" onclick="beker(6)"/></td> <td><input type="button" value="-" onclick="beker('-')"/></td> </tr> <tr> <td><input type="button" value="7" onclick="beker(7)"/></td> <td><input type="button" value="8" onclick="beker(8)"/></td> <td><input type="button" value="9" onclick="beker(9)"/></td> <td><input type="button" value="*" onclick="beker('*')"/></td> </tr> <tr> <td><input type="reset" value="C"/></td> <td><input type="button" value="0" onclick="beker(0)"/></td> <td><input type="button" value="=" onclick="szamol()"/></td> <td><input type="button" value="/" onclick="beker('/')"/></td> </tr> </table> </form> </body> </html> 

所以我需要在szamol()中使用其他方法。

我们制作了另一个计算器,但有单选按钮。 我也在添加代码,所以你可以看到我们学到的东西。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Névtelen 1</title> <script> function szamol() { var a=parseInt(document.urlap.szam1.value); var b=parseInt(document.urlap.szam2.value); var e=0; if(document.urlap.muvelet[0].checked)e=a+b; if(document.urlap.muvelet[1].checked)e=ab; if(document.urlap.muvelet[2].checked)e=a*b; if((document.urlap.muvelet[3].checked) &&(b!=0))e=a/b; if((document.urlap.muvelet[3].checked) &&(b==0))e="Nullával nem osztunk"; if(document.urlap.muvelet[4].checked) { e=1; for(i=1;i<=b;i++) e=e*a; } document.urlap.eredmeny.value=e; } </script> </head> <body> <form name="urlap"> <table> <tr> <td>Szam1<input type="number" name="szam1" value="0"> <td>Szam2<input type="number" name="szam2" value="0"> </tr> <tr> <td>Összeadás<input type="radio" name="muvelet" checked> Kivon<input type="radio" name="muvelet"> Szoroz<input type="radio" name="muvelet"> Oszt<input type="radio" name="muvelet"> Hatvany<input type="radio" name="muvelet"> </tr> <tr> <td><input type="button" value="OK" onclick="szamol()"> <td><input type="reset" value="Reset"> </tr> <tr> <td>Eredmény:<input type="text" name="eredmeny"> </tr> </table> </form> </body> </html> 

1 个回复

继续Nikos M.留下评论,您需要一种方法来确定您正在使用哪个运算符。 下面的代码只会考虑一个操作员,但如果您需要涵盖的话,它将执行您正在寻找的操作。

为了澄清上面的粗体文本,这将适用于以下表达式:

X + YX - YX * YX / Y

但不适用于以下表达式:

X + Y + ZX * Y + Z / P

function szamol() {
        var a = document.szamologep.eredmeny.value;
        if (a) {
            var answer;
            var split = a.split(/([+,\-,*,\/]){1}/g);
            console.log('Split: ' + split);
            var first = Number(split[0]);
            var operator = String(split[1]);
            var second = Number(split[2]);
            switch(operator){
                case '+':
                    answer = first + second;
                break;
                case '-':
                    answer = first - second;
                break;
                case '*':
                    answer = first * second;
                break;
                case '/':
                    answer = first / second;
                break;
            }
            document.szamologep.eredmeny.value = answer;
        }
    }

我们设置了空的answer变量,然后我们使用正则表达式在任何运算符+, -, *, \\上拆分a值。 我们split的第一个元素是第一个数字,我们split的第二个元素是我们的运算符,我们split的第三个元素是第二个数字。

在我们完成了我们的工作之后,我们创建了一个switch案例,它检查我们正在使用哪个运算符,并根据它进行数学运算。 因为输入的是文本输入- JavaScript的假设我们正在处理字符串-这就是为什么我必须typecastfirstsecond变量Number()进行设置时。

1 HTML / JavaScript计算器

我本学期正在参加WebGIS讲座,可以在调试代码时使用一些帮助。 这是一个非常简单的HTML / js计算器,但给我带来了问题。 没有一个按钮在我的js代码中显示任何数字或执行任何功能。 谁能帮我找出问题所在? 我敢肯定这是一个简单的解决方法,但是视网膜中的视锥细胞正在燃烧,试图找到它。 ...

3 我的 HTML/Javascript 计算器无法工作

我正在编写一个简单的 UI 计算器,它运行良好,直到我优化了一些功能以使计算器实际计算。 我已经检查了我的代码,但我找不到 JavaScript 有什么问题。 代码片段只包含数字 1,2,3,但实际有 1-9。 var resultline_str = " "; var multid ...

4 内置计算器的HTML / Javascript表

我得到了带有内置计算器功能的表,该函数可以从table不同部分进行选择,并在最后添加所有内容。 但是我的问题是,如果我用其中的一个字母而不是数字打一个正方形,计算器就会坏掉,我该如何解决? 如何使第一个类似包含信息(汽车名称)的信息无法点击,并且只有前5个正方形。 表代码: 剧 ...

5 基本的JavaScript计算器

我在使用基本的JavaScript抵押计算器时遇到了一些麻烦...我尚未实现数学运算。 但是我在提交表单后在表单下方显示最终总和(x + y + z)时遇到了麻烦(这是客户端的操作,我只是使用变量的总和进行测试)。 另外,“重置表单”按钮不起作用。 有谁能够帮助我? 谢谢! ...

8 为什么我的JavaScript计算器不能与base.html一起使用?

所以不久前,我做了一个JavaScript计算器,现在在另一个项目中重新使用它。 问题是,它甚至不再显示在页面上。 这是calc.html文件的代码。 这是它的扩展名base.html文件。 请注意,这不是我写的,我只是想让计算器使用它,而看不到是什么在阻止它。 ...

9 清除Javascript / HTML计算器中的值

为什么当我按“ c”或“ =”时,计算器不能清除? &lt;form name='calculator'&gt; &lt;table&gt; &lt;tr&gt; &lt;td colspan='4'&gt; &lt;input type='text' name='display ...

10 如何创建JavaScript和HTML营业税计算器?

好的,我的问题是,我想创建一个营业税计算器。 当用户输入物品的价格(例如,一个球的价格为7美元)时,其最终价格为12%。 但是..不仅如此,我还想,如果用户选择某件商品(球:$ 7,玩具$ 4和糖果$ 2 .. = $ 13),则将该商品加起来并加营业税($ 13 + 12%)。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM