去掉 '。'一个浮子

时间:2011-08-11 01:01:34

标签: javascript floating-point

548.705078125输出 - > 548705078125

最好的方法是什么,而不是使用正则表达式或.replace('.','')

10 个答案:

答案 0 :(得分:7)

试试这个:

Number((548.705078125).toString().split(".").join(""))

答案 1 :(得分:5)

看,没有可怕的,讨厌的字符串函数或正则表达式!

function noStringsOrRegexOrDecimals(num) {
  while (num % 1 !== 0) {
    num *= 10;
  };
  return num;
}

noStringsOrRegexOrDecimals(548.705078125);

是的,我知道这对你的工具包(although it is fast)来说不是一个非常有用的功能。而且由于浮点数学的工作原理,它会因某些数字而中断,并且它将无法在我们辉煌的八进制未来中发挥作用。

答案 2 :(得分:3)

如果你没有使用replace()或regex(),那么split()呢?

var str = '548.705078125';
str = str.split(".");
str = str[0]+str[1];

答案 3 :(得分:2)

这些都是奇怪的限制。在c === 548705078125

的末尾
var f = 548.705078125;
var c = Math.floor(f);
f = f.toString();
for(var i = 1; (c = Math.floor(c/10)) > 0; i++);
c = parseInt(f.substring(0, i)+f.substring(i+1));

答案 4 :(得分:2)

我无法相信没有人建议使用明显的jQuery方法来做到这一点,因此您不需要JavaScript字符串数学函数:

function removeDot(num) {
  var result = $.ajax({
                       url: "removeDot.php",
                       type: "POST",
                       data: {"num" : num},
                       dataType: "text",
                       async:false
                     }).responseText;
  return Number(result);
}

console.log(removeDot(548.705078125)); // output -> 548705078125 

我将“removeDot.php”的实现作为读者的练习......

答案 5 :(得分:2)

你需要将数字作为一个int ...所以你可以将它作为一个int传递给一个函数....你确定你不需要以下代码吗?

var num = 2395847.3428345;
Math.floor(num); // result is 2395847

答案 6 :(得分:1)

将它变成一个字符串并循环遍历其中的所有字符并查找chr ==“。”

从未听说过你不应该使用正则表达式或替换的情况。

答案 7 :(得分:1)

var n = 548.705078125.toString();
var i = n.substr(0, n.indexOf('.')) + n.substr(n.indexOf('.')+1);
alert(i);

答案 8 :(得分:1)

没有正则表达式!

var num = 548.705078125;

function remove_decimal(num)
{
    var numStr = "" + num;
    var decimalIndex = numStr.indexOf('.');
    return num * Math.pow(10, (numStr.length - (decimalIndex + 1)));
}

remove_decimal(num) -> 548705078125

答案 9 :(得分:1)

假设你的号码已经是一个浮点数(用于调用需要整数的函数,我猜),你可以使用它:

floor(1e9 * x);  // where x is 548.705078125 in your case

floor将免除处理器中任何奇怪的精度问题。