首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >toFixed();只返回.00

toFixed();只返回.00
EN

Stack Overflow用户
提问于 2013-07-19 18:52:59
回答 3查看 776关注 0票数 0

下面的代码返回十进制位,但当我将值设置为.67、1.33、2.67等时,它不会返回除.67以外的值。

代码语言:javascript
复制
$(function($) {
    $('#CourseMenu select').change(function() {
        var sum = 0;
        $('#CourseMenu select').each(function(idx, elm) {
            sum += parseInt(elm.value, 10);
        });

     $('#total_potential').html(Math.min(sum,72).toFixed(2));
    });
});

这里是js从.中提取数据的地方

代码语言:javascript
复制
            <legend>Transfer Course Information</legend>
<label for="School Int.">School Int.</label> 
          <input name="School Int." type="text" size="6" maxlength="6" /> &nbsp; 

          <label for="ID">ID</label>
          <input name="ID" type="text" id="ID" size="8" /> &nbsp; 

            <label for="Name">Name</label>
          <input name="Name" type="text" id="Name" size="25" />&nbsp;

          <label for="Grade">Grade</label>
          <input name="Grade" type="text" id="Grade" size="2" />&nbsp; 

          <label for="Credits">Credits</label>
                <select name="Credits" id="Credits">
                    <option value="0">Select Credit</option>
                    <option value="0.67">1 QtrCr.</option>
                    <option value="1.33">2 QtrCr.</option>
                    <option value="2.00">3 QtrCr.</option>
                    <option value="2.67">4 QtrCr.</option>
                    <option value="3.33">5 QtrCr.</option>
                    <option value="4.00">6 QtrCr.</option>
                    <option value="4.67">7 QtrCr.</option>
                    <option value="5.33">8 QrtCr.</option>
                    <option value="6.00">9 QtrCr.</option>
                    <option value="6.67">10 QtrCr.</option>
                    <option value="1">1 SemCr.</option>
                    <option value="2">2 SemCr. </option>
                    <option value="3">3 SemCr.</option>
                    <option value="4">4 SemCr.</option>
                    <option value="5">5 SemCr.</option>
                    <option value="6">6 SemCr.</option>
                    <option value="7">7 SemCr. </option>
                    <option value="8">8 SemCr.</option>
                    <option value="9">9 SemCr.</option>
                    <option value="10">10 SemCr.</option>
                  </select>

          Transferrable
          <input name="COM105" type="checkbox" id="COM1" />

,我试过了,但没成功.

代码语言:javascript
复制
$(function($) {
    $('#CourseMenu select').change(function() {
        var sum = 0;
        $('#CourseMenu select').each(function(idx, elm) {
            sum += parseInt(elm.value, 10);
        });

     $('#total_potential').html(Math.min(sum,72).toFixed(2).replace(".00", ""));
    });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-19 18:56:34

你用的是parseInt(),它丢弃分数。使用parseFloat()代替。

代码语言:javascript
复制
$(function($) {
    $('#CourseMenu select').change(function() {
        var sum = 0;
        $('#CourseMenu select').each(function(idx, elm) {
            sum += parseFloat(elm.value);
        });

     $('#total_potential').html(Math.min(sum,72).toFixed(2));
    });
});
票数 1
EN

Stack Overflow用户

发布于 2013-07-19 18:57:02

parseInt方法将字符串解析为整数(整数)。在维护小数部分的同时,在JavaScript中将字符串转换为数字的一种简单方法是使用一元加法运算符:

代码语言:javascript
复制
sum += +elm.value;

parseFloat相比,它的优点/缺点是更严格:如果字符串以数字开头,后面跟着字母(如"123abc" ),这将返回一个NaN,而parseFloat将返回在字母之前可以解析的数字。

票数 1
EN

Stack Overflow用户

发布于 2013-07-19 18:56:17

您正在对调用parseInt()之前的值调用“.toFixed”,这将将这些浮点转换为ints。试着用"parseFloat“代替,你应该都准备好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17753465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档