javascript - 与 toString(36) 相反?

标签 javascript numbers type-conversion

var a = (123.456).toString(36)//"3f.gez4w97ry0a18ymf6qadcxr"

现在,如何使用该字符串恢复到原始数字?

注意:parseInt(number,36) 仅适用于整数。

最佳答案

您可以尝试使用 parseInt 分别解析整数和 float 部分,因为 parseFloat 不支持基数:

function parseFloatInBase(n, radix) {
    var nums = n.split(".")

    // get the part before the decimal point
    var iPart = parseInt(nums[0], radix)
    // get the part after the decimal point
    var fPart = parseInt(nums[1], radix) / Math.pow(radix, nums[1].length)

    return iPart + fPart
}

// this will log 123.456:
console.log(parseFloatInBase("3f.gez4w97ry0a18ymf6qadcxr", 36))

我除以radix ^ numLength,因为我基本上是在numLength 空格上移动小数点。您可以像在数学课上一样执行此操作,因为您知道除以 10 会将小数移动一个空格,因为大多数数学都是以 10 为基数。示例:

123456 / 10 / 10 / 10 = 123.456

这相当于

123456 / (10 * 10 * 10) = 123.456

因此

123456 / (10 ^ 3) = 123.456

关于javascript - 与 toString(36) 相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985984/

相关文章:

javascript - 我需要angularjs中没有数组括号的输出值

javascript - 如何通过Flash保存录制的音频,文件名通过chrome中的javascript传递

java - java中如何将数字四舍五入到6位有效数字?

python - 更改一系列数据框中元素的值python

c# - IE 不适用于 javascript onclick 事件...适用于 FF 和 Chrome

javascript - 更新照片期间 Ajax 调用中的 MethodNotAllowedHttpException (Laravel)

python - 为什么int是number.Number的子类?

file - Lua 文件输出 : what is -1. #IO?

Java类型不匹配无法从int转换为byte?

python - 为什么Python中列表转换成字典后大小会减小?