在Javascript中将int 12345转换为float 1.2345
Turn int 12345 into float 1.2345 in Javascript
我想把12345变成1.2345
这有不同的数字。
这是我到目前为止所做的,它很有效,只是不太好看,看起来像是一个黑客。
var number = 12345
> 12345
var numLength = number.toString().length
> 5
var str = number +'e-' + (numLength - 1)
> "12345e-4"
var float = parseFloat(str)
> 1.2345
有什么东西刚好把我的小数点后4位吗?
我试过
Math.pow(number, -4)
> 4.3056192580926564e-17
它甚至连我需要的东西都没有。
Math.exp()
只接受一个参数(指数)并将其应用于Eulers常数。Returns Ex, where x is the argument, and E is Euler's constant (2.718…), the base of the natural logarithm.
除以10000
是行不通的,因为数字并不总是只有12345
。可能是CCD_ 5或CCD_。在这两种情况下,我仍然需要1.23
或1.234234614
function f(n){
return n/(Math.pow(10, Math.floor(Math.log10(n))));
}
你需要把n除以10^x,其中x是数字的"长度"。结果是,数字的长度只是数字对数的底。
function getBase10Mantissa(input) {
// Make sure we're working with a number.
var source = parseFloat(input);
// Get an integer for the base-10 log for the source value (round down in case of
// negative result).
var exponent = Math.floor(Math.log10(source));
// Raise 10 to the power of exponent and divide the source value by that.
var mantissa = source / Math.pow(10, exponent);
// Return mantissa only (per request).
return mantissa;
}
相关文章:
- float's未返回到移动视图结束后的位置
- Angular 2:如何在 GET 和 POST 请求中设置 double、float、int 和布尔类型参数
- 在Javascript中将int 12345转换为float 1.2345
- parseFloat未将sql中的字符串值更改为float
- 在javascript中解析Float()之前,我应该先调用String()吗
- 只允许使用javascript和mootools在字段中输入int和float
- 可以't在Firefox中设置element.style.float
- 使用 JavaScript 查找 CSS Float
- 在jquery中检测数字是INT还是FLOAT
- 在 jQuery 中添加 Float 值
- 快乐/乔伊验证 float().
- Angularjs orderBy on float
- float Array compression in javascript
- Json Object不能使用parse.com云功能Android强制转换为Float
- Regex仅为货币标识float或int
- javascript:解析开始和结束都带有字符串前缀的float
- 调整容器分区大小时,使用css float进行布局,不移位
- 如何在javascript中将Uint8Array转换为float
- 使用Javascript保存float
- Javascript解析Float 10而不是e