使用Javascript Math我可以将像100这样的十进制数转换为十进制功率数,如1e + 2
Math.pow(10, 2)
但是我怎么能这样做呢?如何将像1e + 2这样的十进制幂转换为100的常规小数?我需要这个来保存数据库号列中的数字。 我找不到任何方法或jquery插件来为我做这件事。
答案 0 :(得分:3)
您在上面显示的表达式Math.pow(10, 2)
实际上评估为100
。
但如果您获得字符串1e+2
,则可以通过调用100
将其更改为parseFloat()
:
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.
答案 1 :(得分:1)
你所说的是数字格式,而不是数字。
字符串"100"
是数字100
的文字表示。字符串"1e+2"
是相同数字的文本表示,但是采用科学格式。
数值没有任何特定格式。此代码中变量a
,b
和c
中的值完全相同:
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
当您想在数据库中存储数值时,数字来自何处并不重要,它只是所使用的数值本身。
答案 2 :(得分:0)
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>
&#13;