在具有数值的javascript中添加两个变量

时间:2015-09-01 05:35:20

标签: javascript html

我正在制作一个程序,在用户用java脚本输入的值中添加10%。

我的HTML代码

use="optional"

我的java脚本代码

<input id='new' onKeyUp='doit()' name='hello' onkeydown='doit()' value=''  placeholder='Type a numeric value' />
<input id='new1' value=''  placeholder='final value' />

js.do output

给出输入100预期输出为110但实际输出为10010

虽然我按规则添加.... w3schools example

请告诉我我哪里错了........................

9 个答案:

答案 0 :(得分:3)

实际上document.getElementById('input_element')。value将返回一个字符串。在JS操作中的数学表达式,例如/ * -将很好,例如数学,但+实际上连接c = a + b的字符串(如果有的话){ {1}}或a是字符串b,如果ca都是数字b,则c将成为连接值。 。要避免在添加到另一个数字之前执行parseInt()或乘以1。我已将*1添加到var newamount=sum*1 + extra;您还可以使用var newamount=parseInt(sum) + extra;

小部件在下面添加:

function doit()
{
  var sum=document.getElementById('new').value;
  var extra=sum/10;
  var newamount=sum*1 + extra;
  document.getElementById('new1').value=newamount;
}
<input id='new' onKeyUp='doit()' name='hello' onkeydown='doit()' value=''  placeholder='Type a numeric value' />
<input id='new1' value=''  placeholder='final value' />

答案 1 :(得分:2)

试试这个:

function doit()
{
var sum=document.getElementById('new').value;
var extra=parseInt(sum)/10;
var newamount=parseInt(sum) + extra;
document.getElementById('new1').value=newamount;
}

答案 2 :(得分:0)

DO parseInt()

var newamount=parseInt(sum) + parseInt(extra);

答案 3 :(得分:0)

使用parseInt js.do

function doit()
{
   var sum=document.getElementById('new').value;
   var extra=sum/10;
   var newamount=parseInt(sum) + extra;
   document.getElementById('new1').value=newamount;
}

答案 4 :(得分:0)

使用parseInt功能将sum转换为数字,以便sum + extra不会连接这两个数字,但会以数字方式添加它们。

var sum = parseInt(document.getElementById('new').value);

答案 5 :(得分:0)

在Javascript中使用parseInt

我正在用parseInt编写你的代码。

function doit()
{
var sum=document.getElementById('new').value;
var extra=parseInt(sum)/10;
var newamount=parseInt(sum) + parseInt(extra);
document.getElementById('new1').value=newamount;
}

让我知道它是否有用

答案 6 :(得分:0)

document.getElementById('textId').value

返回一个String,表示文本字段的值,但不是Fixnum / Numeric类型。因此,在应用任何算术之前,您必须将其转换为数字类型。

更多详情请参阅Input Text value Property on w3schools

答案 7 :(得分:0)

使用parseFloat()而不是parseInt(),因为parseInt只输出整数。试试这个......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <fragment
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            class="com.google.android.gms.maps.SupportMapFragment" 
            android:layout_marginBottom="10dp"/>

</LinearLayout>

答案 8 :(得分:0)

如果您使用的数字是57.435,则可以使用parseFloat(sum)