如何计算和显示MROUND值放在小数点后两位

时间:2019-01-30 10:26:20

标签: jquery html

我有这些HTML选择

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v1.0.0, on Microsoft Windows [Version 10.0.17134.523], locale en-001)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[√] Android Studio (version 3.2)
[√] VS Code (version 1.30.2)
[√] VS Code, 64-bit edition
[√] Connected device (1 available)

• No issues found!

然后我用这些值input1,input2,score1,score2计算MROUND。

<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>

当我console.log并警告计算值时,它看起来不错,但是当我尝试将其显示在HTML输入中时,它始终以1个小数位表示,即3.5。我的目标是显示此3.50的值。该值始终在小数点后两位。

我在这里想念什么吗?感谢有人可以帮助解决此问题。

谢谢。

2 个答案:

答案 0 :(得分:0)

您的代码可以正常工作。我只是重写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>

答案 1 :(得分:-1)

当您使用val时,其值为1.00 == 1,因此即使您传递1.00,系统也会传递值1而不是1.00,因为它们相等。如果您需要在控制台,警报,提示,内部等内部显示值,则无需通过VAL。

如果您需要使用no-cors将数字val替换为字符串,则将最后一个类似var .toString()的代码放入; 它会在xD上运行