Я пытаюсь вычислить в javascript. Некоторые части расчета не работают.
Я хочу рассчитать общую стоимость со скидкой. Например: Когда цена = 10,00 и скидка = 50 (%)
Мне нужно рассчитать: 10.00 * 0,50
Поэтому мне нужно что-то вроде этого:
var totalValue = numVal1 / 0, numVal2
Когда я это делаю, скрипт не работает. Как я могу это исправить?
Это мой полный код:
function getPrice() {
var numVal1 = Number(document.getElementById("price").value);
var numVal2 = Number(document.getElementById("discount").value);
var totalValue = numVal1 / numVal2
document.getElementById("total").value = totalValue.toFixed(2);
}
6 ответов
Итак, у вас есть цена (10) и скидка (50)
FinalPrice = цена * (100-скидка / 100) = 10 * (100-50 / 100) = 10 * 0,5 = 10 * 50%
Так
function getPrice() {
var numVal1 = Number(document.getElementById("price").value);
var numVal2 = Number(document.getElementById("discount").value);
var totalValue = numVal1 * ( (100-numVal2) / 100 )
document.getElementById("total").value = totalValue.toFixed(2);
}
Я думаю, что вы неправильно рассчитываете стоимость, она должна быть:
var totalValue = numVal1 *(numVal2/100);
Чтобы получить процент, вам нужно разделить скидку на 100 и умножить ее на цену.
Например, я купил обувь, нормальная цена - 50 фунтов, но это была заключительная распродажа, поэтому скидка 75%. поэтому нам нужно отработать 75% из 50, а затем снять это.
50 - (50 * 75/100) или 50 - (50 * 0,75)
(Обувь стоила всего 12,50 фунтов стерлингов ... сделка!)
Я бы пошел на что-то вроде:
getPrice = function() {
var numVal1 = Number(document.getElementById("price").value);
var numVal2 = Number(document.getElementById("discount").value) / 100;
var totalValue = numVal1 - (numVal1 * numVal2)
document.getElementById("total").value = totalValue.toFixed(2);
}
<input id="price">
<br>
<input id="discount">%
<br>
<button onclick="getPrice()">
Get total
</button>
<br>
<input readonly id="total">
Вы не можете ожидать, что JavaScript поймет, что 0, numVal2
должно быть выведено как плавающее число. В JavaScript запятая имеет собственное значение. Вместо этого вы должны рассматривать numVal2
как процент (что и есть) и делать:
var totalValue = numVal1 / (numVal2 / 100);
var result = (numVal1 -numVal2 )/numVal1;
var result2 = result*100;
Попробуй это.
function calculateDiscount(price,discount) {
return (price - (price * (discount/100))).toFixed(2);
}
document.getElementById("submit_btn").onclick = function(){
var price = Number(document.getElementById("price_input").value);
var discount = Number(document.getElementById("discount_input").value);
var calculated = calculateDiscount(price,discount);
document.getElementById("price_tag").innerHTML = calculated;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<strong>Enter Price</strong><br>
<input type="text" placeholder="Price" id="price_input"><br><br>
<strong>Enter Discount %</strong><br>
<input type="text" placeholder="Discount %" id="discount_input"><br><br>
<button type="button" id="submit_btn">Calculate</button>
<h1 id="h1_tag">Final:. <small id="price_tag">0.00</small></h1>
</body>
</html>
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
var totalValue = numVal1 * (numVal2/100)
totalValue = price * (100 - discount) / 100
, сprice=numVal1
иdiscount = numVal2
.