jquery - 如何计算并显示两位小数的 MROUND 值
问题描述
我有这些 HTML 选择
<tr>
<td><input type="text" class="" id="total_score" value=""></td>
</tr>
<tr>
<td>
<select class="input1" id="" name="">
<option value="0">0%</option>
<option value="0.05">5%</option>
<option value="0.10">10%</option>
<option value="0.15">15%</option>
<option value="0.20">20%</option>
<option value="0.25">25%</option>
<option value="0.30">30%</option>
<option value="0.35">35%</option>
<option value="0.40">40%</option>
<option value="0.45">45%</option>
<option value="0.50">50%</option>
<option value="0.55">55%</option>
<option value="0.60">60%</option>
<option value="0.65">65%</option>
<option value="0.70">70%</option>
<option value="0.75">75%</option>
<option value="0.80">80%</option>
<option value="0.85">85%</option>
<option value="0.90">90%</option>
<option value="0.95">95%</option>
<option value="1">100%</option>
</select>
</td>
<td><input type="text" class="" id="score1" name="" value="0" placeholder="" readonly></td>
</tr>
<tr>
<td>
<select class="input2" id="" name="">
<option value="0">0%</option>
<option value="0.05">5%</option>
<option value="0.10">10%</option>
<option value="0.15">15%</option>
<option value="0.20">20%</option>
<option value="0.25">25%</option>
<option value="0.30">30%</option>
<option value="0.35">35%</option>
<option value="0.40">40%</option>
<option value="0.45">45%</option>
<option value="0.50">50%</option>
<option value="0.55">55%</option>
<option value="0.60">60%</option>
<option value="0.65">65%</option>
<option value="0.70">70%</option>
<option value="0.75">75%</option>
<option value="0.80">80%</option>
<option value="0.85">85%</option>
<option value="0.90">90%</option>
<option value="0.95">95%</option>
<option value="1">100%</option>
</select>
</td>
<td><input type="text" class="" id="score2" name="" value="0" placeholder="" readonly></td>
</tr>
我用这些值 input1、input2、score1、score2 计算 MROUND。
var input1 = $(".input1").val();
var input2 = $(".input2").val();
var score1 = $("#score1").val();
var score2 = $("#score2").val();
var sumproduct = (parseFloat(input1) * parseFloat(score1)) + (parseFloat(input2) * parseFloat(score2));
var unit = 0.50;
var sumproduct = sumproduct.toFixed(2);
var remainder = parseFloat(sumproduct) % parseFloat(unit);
var mround = (parseFloat(remainder) < parseFloat(unit)/2) ? parseFloat(sumproduct) - parseFloat(remainder) : parseFloat(sumproduct) + (parseFloat(unit) - parseFloat(remainder));
var mround = String(mround.toFixed(2));
$('#total_score').val(mround);
// console.log(input1);
// console.log(input2);
// console.log(score1);
// console.log(score2);
// console.log(sumproduct);
// console.log(mround);
当我 console.log 并提醒计算值时,它看起来很好,但是当我尝试在 HTML 输入中显示它时,它总是在小数点后 1 位,即 3.5 。我的目标是显示像 3.50 这样的值。该值始终为小数点后 2 位。
我在这里错过了什么吗?感谢有人可以帮助解决这个问题。
谢谢。
解决方案
您的代码工作正常。我只是重写var sumproduct = parseFloat((input1) * (score1)) + ((input2) * (score2)).toFixed(2);
var unit = 0.50;
var sumproduct =parseFloat( sumproduct).toFixed(2);
只需重新排序您的代码并执行此操作parseFloat(input1).toFixed(2)
function print(){
var input1 = $(".input1").val();
var input2 = $(".input2").val();
var score1 = $("#score1").val();
var score2 = $("#score2").val();
var sumproduct = ((input1) * (score1)) + ((input2) * (score2));
var unit = 0.50;
var sumproduct =parseFloat( sumproduct).toFixed(2);
var remainder =parseFloat( (sumproduct) % (unit)).toFixed(2);
var mround = ((remainder) < (unit)/2) ? (sumproduct) - (remainder) : (sumproduct) + ((unit) - (remainder));
var mround = String(parseFloat(mround).toFixed(2));
$('#total_score').val(mround);
console.log(parseFloat(input1).toFixed(2));
console.log(parseFloat(input2).toFixed(2));
console.log(parseFloat(score1).toFixed(2));
console.log(parseFloat(score2).toFixed(2));
console.log((sumproduct));
console.log(mround);}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<tr>
<td><input type="text" class="" id="total_score" value=""></td>
</tr>
<tr>
<td>
<select class="input1" id="" name="">
<option value="0">0%</option>
<option value="0.05">5%</option>
<option value="0.10">10%</option>
<option value="0.15">15%</option>
<option value="0.20">20%</option>
<option value="0.25">25%</option>
<option value="0.30">30%</option>
<option value="0.35">35%</option>
<option value="0.40">40%</option>
<option value="0.45">45%</option>
<option value="0.50">50%</option>
<option value="0.55">55%</option>
<option value="0.60">60%</option>
<option value="0.65">65%</option>
<option value="0.70">70%</option>
<option value="0.75">75%</option>
<option value="0.80">80%</option>
<option value="0.85">85%</option>
<option value="0.90">90%</option>
<option value="0.95">95%</option>
<option value="1">100%</option>
</select>
</td>
<td><input type="text" class="" id="score1" name="" value="0.00" placeholder="" ></td>
</tr>
<tr>
<td>Telekom Malaysia Billing Arrears</td>
<td>
<select class="input2" id="" name="">
<option value="0">0%</option>
<option value="0.05">5%</option>
<option value="0.10">10%</option>
<option value="0.15">15%</option>
<option value="0.20">20%</option>
<option value="0.25">25%</option>
<option value="0.30">30%</option>
<option value="0.35">35%</option>
<option value="0.40">40%</option>
<option value="0.45">45%</option>
<option value="0.50">50%</option>
<option value="0.55">55%</option>
<option value="0.60">60%</option>
<option value="0.65">65%</option>
<option value="0.70">70%</option>
<option value="0.75">75%</option>
<option value="0.80">80%</option>
<option value="0.85">85%</option>
<option value="0.90">90%</option>
<option value="0.95">95%</option>
<option value="1">100%</option>
</select>
</td>
<td><input type="text" class="" id="score2" name="" value="0.00" placeholder="" ></td>
<td><input type="button" onclick="print()" value="show the result"> </td>
</tr>
推荐阅读
- makefile - 两次编译一个文件
- elasticsearch - 如何使用 Scroll API elasticsearch 滚动数据
- javascript - 如何循环对象中的值并在 HTML 中呈现它们?
- r - 将 A、B 列逐个元素组合到 A 和 B 元素的范围列表列中
- vba - VBA自动过滤过去日期的一系列列
- linux - LINUX:无法在 libcryptsetup 上进行 pkg-config
- r - 如何通过 $plane3d 函数使用 scatterplot3d 绘制 R 线性模型 lm()
- reactjs - 使用 post 方法提交表单时如何模拟错误消息?
- c++ - std::ranges::make_heap 的约束是什么?
- python - 如何获取tic tac toe python代码告诉用户他们选择的地方无效,需要选择1到9之间的空格