【问题标题】:Javascript convert decimal power to regular decimalJavascript将十进制幂转换为常规十进制
【发布时间】:2015-01-19 19:12:30
【问题描述】:

使用 Javascript Math 我可以将十进制数如 100 转换为十进制幂数如 1e+2

Math.pow(10, 2)

但是我怎么能反过来呢?如何将像 1e+2 这样的小数幂转换为像 100 这样的常规小数?我需要这个来在数据库编号列中保存一个数字。 我找不到任何可以为我执行此操作的方法或 jquery 插件。

【问题讨论】:

    标签: javascript jquery math number-formatting


    【解决方案1】:

    您在上面显示的表达式Math.pow(10, 2) 实际上计算为100

    但如果给定字符串1e+2,则可以通过调用parseFloat() 将其更改为100

    var s = '1e+2',         // This is a string in scientific notation.
        x = parseFloat(s);  // Here we convert it to the more widespread notation.
    document.write('"'+s+'" -> '+x);  // Let's print out the values for testing purposes.

    【讨论】:

    • 是的,转换是错误的术语。 (星期五晚上 ^^)parseFloat 和将 db 列类型更改为 float 工作正常。谢谢
    【解决方案2】:

    Math.pow(x, y) 实际上返回 x^y 的结果。在您的具体情况下,它以科学计数法表示,但实际数字仍然是 100。 如果你有一个字符串并且想得到实际的数字,你可以使用:

    Number("1e+2")

    示例

    $("#result").append(Number("1e+2"));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="result"></div>

    【讨论】:

    • 我认为你的意思是Number("1E+2")
    【解决方案3】:

    你说的是数字格式,而不是数字。

    字符串"100" 是数字100 的文本表示。字符串"1e+2" 是相同数字的文本表示,但采用科学格式。

    数值没有任何特定格式。此代码中变量abc中的值完全相同:

    var a = 100;
    var b = Math.pow(10, 2);
    var c = 1e+2;
    

    仅当您创建数字的文本表示形式时,数值才会获得特定格式。在这段代码中,上一个示例中的变量显示为文本:

    console.log(a);
    console.log(b);
    console.log(c);
    

    由于值不会太小或太大而无法以常规十进制格式合理表示,因此它们是这样得出的:

    100
    100
    100
    

    当你想在数据库中存储一个数值时,这个数字来自哪里并不重要,它只是使用的数值本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2022-01-14
      • 2011-07-28
      • 1970-01-01
      • 2012-06-26
      相关资源
      最近更新 更多