2016-05-10 9 views
1

Ich habe diesen Code und es gibt immer 9 keine mater, welche Nummer ich in die Textbox gelegt habe. Die Gleichung ist 0,25x^(2) +9, das^(2) bedeutet Quadrat.Eine Gleichung in Javascript tun?

<html> 
<head> 
    <script> 
    function calc() { 
     var number = parseInt(document.getElementById('input').value); 
     var one = parseInt(0.25*number); 
     var two = parseInt(one*one); 
     var three = parseInt(two+9) ; 
     var sum = parseInt(three); 
     document.getElementById('num').innerHTML = sum; 
    } 
    </script> 
</head> 
<body> 
<p>$10 fee and 2 Commands are free!</p> 
<input id="input" type="number" name="quantity" min="1" max="1000"></input><div id="num"></div> 
<button onclick="calc()">Calculate</button> 
</body> 

Hilfe?

Fiddle

+4

Sie müssen Aufruf nicht halten 'parseInt() 'So. – Pointy

+0

Und vielleicht sollten Sie 'parseFloat' verwenden. Hier mehr [information] (http://www.w3schools.com/jsref/jsref_parsefloat.asp) –

+0

[Hier ist es (ohne die überschüssigen 'parseInt' Anrufe)] (https://jsfiddle.net/Pointy/4yrLjwz8/) und es scheint gut zu funktionieren. – Pointy

Antwort

0

Ich denke, dass, wenn man es in ein int jedes Mal werfen Sie alles bis auf 0 runden und dann, wenn Sie +9 fügen Sie alwasy 9 erhalten, wie die Antwort so tun :

function calc() { 
     var number = parseInt(document.getElementById('input').value); 
     var one = 0.25*number; 
     var two = one*one; 
     var three = two+9; 
     var sum = three; 
     document.getElementById('num').innerHTML = sum; 
    } 

In addtion haben Sie einen Fehler methmetical

var one = 0.25*number; 
var two = one*one; 

zwei wird wie sein two = o.25^2 * x^2 sagen und nicht two = 0.25 * x^2 wie Sie so es ändern wollen:

function calc() { 
     var number = parseInt(document.getElementById('input').value); 
     var one = number*number; 
     var two = 0.25*one; 
     var three = two+9; 
     var sum = three; 
     document.getElementById('num').innerHTML = sum; 
    } 

Und es gibt eine noch easyer Weg:

 function calc() { 
      var number = parseInt(document.getElementById('input').value); 
      var sum = 0.25*(number*number) + 9; 
      document.getElementById('num').innerHTML = sum; 
     } 
+0

Das formulierte perfekt danke. –

4

Ich habe diesen Code und es gibt immer 9, egal welche Nummer ich in gab textbbox

denn das ist, wenn Sie (0.25 * 0.25) tun, es 0.625 wird. und parseInt darauf macht es 0.

Was bedeutet, es sei denn, Ihre Zahl kleiner als 4 ist, wird es immer 9 drucken, da (0+9) ->9 (0 nach ParseInt)

Auch Ihr Code ausgibt 10 wenn Nummer 4 und 13 wenn die Zahl 8 ist .

Rechts Formel wäre

sum = Math.pow(number * 0.25, 2) + 9 
+0

' sum = Math.pow (Zahl * 0,25, 2) + 9' ​​das ist nicht korrekt weil (0,25 * x)^2 =/= 0,25 * x^2, sollte es '0,25 * Math.pow (Zahl, 2) + 9' ​​sein –

+0

Ok, also wenn ich es laufe und 2 gebe, dann sollte Ausgabe 10 nicht 9.25 sein. –

+0

@DonatPants Fair genug! Ich ging mit was OP versucht hat eher was er in Problemstellung beschrieben – gurvinder372