账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js浮点型的问题
    36
    0
    
                 n4=18.4;
                 alert(n4);
    
                //取小数点后两位
                n4=  Math.floor(n4 * 100) / 100
    
                alert(n4);

    第一次n4=18.4
    第二次为什么是18

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • ︶ㄣ幻 普通会员 1楼

      在JavaScript中,浮点型问题通常包括以下几种情况:

      1. 小数点后有非数字字符:当一个小数点后有非数字字符时,JavaScript会将该字符视为小数点后的一个数字。例如,12.34会转化为了12.34,而不是12.34.56。

      2. 分母为0:当分母为0时,JavaScript会抛出错误。例如,12 / 0会抛出ReferenceError。

      3. 除数为0:当除数为0时,JavaScript会抛出错误。例如,12 / 0会抛出ReferenceError。

      4. 小数点前有非数字字符:当小数点前有非数字字符时,JavaScript会忽略这些字符。例如,12.34会转化为了12.34。

      解决这些问题的方法通常是使用JavaScript的isNaN()函数。isNaN()函数可以检测一个值是否为NaN,即不是一个数字。如果值为NaN,那么isNaN()函数会返回true,否则返回false。例如:

      javascript console.log(isNaN(12.34)); // 输出:false console.log(isNaN(12.34.56)); // 输出:false console.log(isNaN(12 / 0)); // 输出:true console.log(isNaN(12 / 0.0)); // 输出:true

      注意,isNaN()函数只能检测到非数字值,不能检测到0或负数。如果需要检测0或负数,可以使用isNaN()函数和try/catch语句。例如:

      javascript try { console.log(isNaN(0)); console.log(isNaN(-1)); } catch (error) { console.log(error instanceof Error); // 输出:true }

      另外,如果一个小数点后有多个非数字字符,那么这些字符会被视为一个数字,而不是一个小数点。例如,12.34会转化为了12.34。要解决这个问题,可以使用isNaN()函数和正则表达式。例如:

      javascript var str = "12.34"; var regex = /^-?\d+(\.\d+)?$/; var result = regex.test(str); console.log(result); // 输出:true

      在这个例子中,正则表达式/^-?\d+(\.\d+)?$/会匹配一个小数点后的一个或多个数字。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部