parseInt是否返回严格的整数?

时间:2018-08-13 02:02:28

标签: javascript function integer rounding

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

我正在尝试使用parseInt构建一个简单的自定义舍入函数,以舍去多余的小数位,但是完整的函数总是返回一个整数:

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

但我也看不出会导致问题的原因。

1 个答案:

答案 0 :(得分: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'))