js实现原币不含税金额、税额可改上下5分钱,超出后提示:不含税金额、税额调整请在原金额的5分钱以内
时间: 2024-05-15 08:15:15 浏览: 122
以下是一个基于 JavaScript 的实现:
```javascript
// 获取输入框和按钮元素
const originalAmountEl = document.getElementById('original-amount');
const taxAmountEl = document.getElementById('tax-amount');
const updateBtn = document.getElementById('update-btn');
// 定义原币不含税金额和税额的初始值
let originalAmount = 0;
let taxAmount = 0;
// 更新输入框的值
function updateInputValues() {
originalAmountEl.value = originalAmount.toFixed(2);
taxAmountEl.value = taxAmount.toFixed(2);
}
// 更新税额
function updateTaxAmount() {
// 计算税额
const newTaxAmount = originalAmount * 0.1;
// 如果新的税额与旧的税额之差在5分钱以内,则更新税额
if (Math.abs(newTaxAmount - taxAmount) <= 0.05) {
taxAmount = newTaxAmount;
updateInputValues();
} else {
alert('不含税金额、税额调整请在原金额的5分钱以内');
}
}
// 更新原币不含税金额
function updateOriginalAmount() {
// 计算原币不含税金额
const newOriginalAmount = (100 * taxAmount) / 110;
// 如果新的原币不含税金额与旧的原币不含税金额之差在5分钱以内,则更新原币不含税金额
if (Math.abs(newOriginalAmount - originalAmount) <= 0.05) {
originalAmount = newOriginalAmount;
updateInputValues();
} else {
alert('不含税金额、税额调整请在原金额的5分钱以内');
}
}
// 绑定更新按钮的点击事件
updateBtn.addEventListener('click', function() {
// 获取输入框的值,并转换为数值类型
const newOriginalAmount = parseFloat(originalAmountEl.value);
const newTaxAmount = parseFloat(taxAmountEl.value);
// 如果新的值与旧的值之差在5分钱以内,则更新原币不含税金额和税额
if (
Math.abs(newOriginalAmount - originalAmount) <= 0.05 &&
Math.abs(newTaxAmount - taxAmount) <= 0.05
) {
originalAmount = newOriginalAmount;
taxAmount = newTaxAmount;
updateInputValues();
} else {
alert('不含税金额、税额调整请在原金额的5分钱以内');
}
});
// 初始化页面
updateInputValues();
```
在上面的代码中,我们使用了 `parseFloat()` 函数将输入框的值转换为数值类型,然后使用 `Math.abs()` 函数计算新值与旧值之差的绝对值,判断是否在5分钱以内。如果在5分钱以内,则更新原币不含税金额和税额;否则,弹出提示框。
阅读全文