首页>Program>source

我正在使用JavaScript验证一个十进制数字。 我只是在使用 NaN

var a = 12345.67 是否有任何JavaScript函数可获取小数点前后的计数或值本身。

before()  should return 1234
after() should return 67

请不要建议一个子字符串!

最新回答
  • 11天前
    1 #

    var a = 12345.67;
    alert(a.toString().split(".")[0]); ///before
    alert(a.toString().split(".")[1]); ///after
    

    这是一个简单的小提琴http://jsfiddle.net/qwtSc/


    zzzzBov's suggestion is this

    Number.prototype.before = function () {
      var value = parseInt(this.toString().split(".")[0], 10);//before
      return value ? value : 0;
    }
    Number.prototype.after = function () {
      var value = parseInt(this.toString().split(".")[1], 10);//after
      return value ? value : 0;
    }
    

    用法

    alert(a.before()); ///before
    alert(a.after()); ///after
    

  • 11天前
    2 #

    before   简单.这只是向下取整操作。

    var before = function(n) {
      return Math.floor(n);
    };
    

    after   没有字符串处理会更难.我的意思是你会怎么处理 after(Math.PI) ? 毕竟,您不能拥有无数个数字的整数。

    但是通过一些字符串处理很容易,只是知道由于浮点数学的奇妙,它并不精确。

    var after = function(n) {
      var fraction = n.toString().split('.')[1];
      return parseInt(fraction, 10);
    };
    

  • 11天前
    3 #

    正在播放其他答案...,并且您想要一个"数字"版本..仍然最容易将其转换为字符串并使用split函数...

    function getNatural(num) {
        return parseFloat(num.toString().split(".")[0]);
    }
    function getDecimal(num) {
        return parseFloat(num.toString().split(".")[1]);
    }
    var a = 12345.67;
    alert(getNatural(a)); ///before
    alert(getDecimal(a)); ///after
    

    http://jsfiddle.net/rlemon/qwtSc/1/

  • 11天前
    4 #

    var decimalPlaces = 2;    
    var num = 12345.673
    var roundedDecimal = num.toFixed(decimalPlaces);
    var intPart = Math.floor(roundedDecimal);
    var fracPart = parseInt((roundedDecimal - intPart), 10);
    //or
    var fractPart = (roundedDecimal - intPart) * Math.pow(10, decimalPlaces);
    

  • 11天前
    5 #

    要查找点后的字符数/长度:

    var a = 12345.67;
    var after_dot = (a.toString().split(".")[1]).length;
    var before_dot= (a.toString().split(".")[0]).length;
    

  • 在JavaScript中找出字串之间的差异
  • c#:使用Startswith比较值与字符串数组