2016-06-11 5 views
0

Я делаю программу, в которой пользователь вводит дробь, тогда какой-то код JavaScript будет определять процентную долю данной фракции.Как бы я хотел разделить числа в строке и сделать их собственными значениями?

Например, цифра Я ввожу 2/4, программа вернет 50%.

Мне интересно, есть ли функция в JavaScript, которая отделяет числитель и знаменатель от заданного значения и превратит их в свои собственные значения. Вот мой код до сих пор:

HTML:

<!doctype html> 
<html> 
    <head> 
     <title>Percentage finder JavaScript</title> 
     <link rel="stylesheet" href="styles/Index.css" /> 
    </head> 
    <body> 
     <h1 id="Head">Enter your fraction:</h1> 
     <form> 
     <input id="fraction" autofocus="on" placeholder="i.e: 1/4"></input> 
     <input type="submit" id="sbmt"></input> 
     </form> 
    </body> 
    <script src="Scripts/js/Index.js" type="text/javaScript"></script> 
</html> 

JavaScript:

document.getElementById('sbmt').onclick = function() { 

var x = document.getElementById('fraction').value; 

} 
+0

«превратить их в свои собственные отдельные ценности» - что вы имеете в виду что? – Thinker

+0

Я имею в виду сделать их собственными переменными, извините, что это не было хорошо написано. –

+0

вы можете привести пример? (в редакции :)) – Thinker

ответ

0

Предполагая, что пользователь дает ввод как value_1/value_2, без скобок, знаков и т.д. умножения ...:

document.getElementById('sbmt').onclick = function() { 
    var value = document.getElementById('fraction').value; 
    var array = value.split(/\//); 
    var a = +array[0]; 
    var b = +array[1]; 
    var result = 100 * (a/b) + '%'; // or just 100 * a/b 
} 

ES6:

document.getElementById('sbmt').onclick = function() { 
    const value = document.getElementById('fraction').value; 
    const [a, b] = value.split(/\//).map(x => +x); 
    const result = 100 * (a/b) + '%'; // or just 100 * a/b 
} 
1

Вы можете получить числитель и знаменатель из фракции с помощью метода split(). Например:

var x = document.getElementById('fraction').value; 
var y = x.split('/'); 
var percentage = y[0]/y[1]*100; 
0

Это в основном так же, как другие ответы, но я полагал, что я мог бы также внести свой вклад:

var parts = x.split('/'); 
var percentage = parts[0]*100/parts[1] 
+0

@Suever, потому что я уже написал это к тому моменту, когда увидел, что они ответили, потому что я новичок в StackExchange, и у меня возникли трудности с кнопкой «Code Sample», которая вернула меня. –

+0

Извините, не осознал, что это было буквально только что отправлено. Это появилось в очереди просмотра, поэтому я прокомментировал это. Продолжать! – Suever

+0

@Suever Нет проблем, и я просто потрясен тем, что вы действительно приняли мой комментарий и не разорвали меня на новый. Люди здесь увереннее и более рациональны, чем другие места в Интернете. –