【问题标题】:Does parseInt return a strict integer?parseInt 返回一个严格的整数吗?
【发布时间】:2019-01-19 17:05:11
【问题描述】:

我的理解是,严格来说,javascript 没有整数数据类型,但我遇到了一个奇怪的问题,让我自己再猜测。

我正在尝试使用 parseInt 构建一个简单的自定义舍入函数来删除额外的小数位,但完整的函数 always 返回一个整数:

function round(num, places){
    return (parseInt(num*10^places) + 0.5)/10^places
}

为了完整起见,我在另一个函数中使用了这个函数:

function convertDegrees(val, uom){
    if (uom === "celcius"){
    return round(val * 9/5 + 32, 2) + " degrees Fahrenheit"}
    else {
    return round((val - 32) * 5/9, 2) + " degrees Celcius"}
}

但我也看不出这会导致什么问题。

【问题讨论】:

    标签: javascript function integer rounding


    【解决方案1】:

    看起来您想将某些东西提高到需要** 而不是^ 的指数,即bitwise XOR

    function round(num, places) {
      return (parseInt(num * 10 ** places) + 0.5) / 10 ** places
    }
    
    function convertDegrees(val, uom) {
      if (uom === "celcius") {
        return round(val * 9 / 5 + 32, 2) + " degrees Fahrenheit"
      } else {
        return round((val - 32) * 5 / 9, 2) + " degrees Celcius"
      }
    }
    
    console.log(convertDegrees(0, 'celcius'))

    【讨论】:

    • Math.pow(),如果您的环境不支持求幂运算符。
    • 感谢 @SamVK 的评论——它把我送到了 MDN,我不知道 ** 不是通用的。
    • 哎呀!哎呀,要学的东西太多了,学的时间太少了,当然,我正在丢掉各种各样的东西!
    猜你喜欢
    • 1970-01-01
    • 2016-05-20
    • 2016-01-14
    • 2012-02-04
    • 2012-04-28
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多