jquery - 如何计算和显示两位小数的MROUND值

标签 jquery html

我有这些 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 输入中显示它时,它总是保留在小数点后一位,即 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>

关于jquery - 如何计算和显示两位小数的MROUND值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438346/

相关文章:

html - 创建水平导航菜单的问题(类似诺基亚)

javascript - 如何使 TinyMCE 处理具有相同数组名称的多个文本区域

javascript - 如果 ID 以前缀开头,JQuery 将替换 html 元素内容

javascript - 类型错误 : Cannot read property 'id' of undefined

jquery - 使用 jQuery 在左侧隐藏/显示

javascript - 在中间列悬停时显示 HTML 表侧列

php - 在 MySQL 和 PHP 中管理图像

javascript - 在 Bootstrap 4 : "Uncaught Error: Tooltip is transitioning" 上出现错误

Android:使用 html5 通过 javascript api 确定 webview 中的地理位置

php - AJAX 未正确发送数据