有没有JS函数来查找小数点前后的值

use*_*880 10 javascript jquery

我正在使用JavaScript验证十进制数.我刚刚使用NaN

var a = 12345.67是否有任何javascript函数来获取小数点前后的计数或值本身.

before()  should return 1234
after() should return 67
Run Code Online (Sandbox Code Playgroud)

请不要建议子串!

Joh*_*ock 31

var a = 12345.67;

alert(a.toString().split(".")[0]); ///before
alert(a.toString().split(".")[1]); ///after
Run Code Online (Sandbox Code Playgroud)

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


zzzzBov的建议是这样的

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;
}
Run Code Online (Sandbox Code Playgroud)

用法

alert(a.before()); ///before
alert(a.after()); ///after
Run Code Online (Sandbox Code Playgroud)


Ale*_*yne 16

before简单.这只是一个向下的操作.

var before = function(n) {
  return Math.floor(n);
};
Run Code Online (Sandbox Code Playgroud)

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

但是通过一些字符串处理它很容易,只是知道由于浮点数学的奇迹而不准确.

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