这种方法给了我错误的价值,为什么?结果必须为5.088100
,但它会为5.o88100
提供任何值。如果decmal point之后的第一个数字为零,那么它会将其删除,为什么?
var precision = descriptor.digits ? descriptor.digits[1] : 2;
var int_part = Math.floor(value);
var dec_part = Math.abs(Math.floor((value % 1) * Math.pow(10, precision)));
答案 0 :(得分:3)
因为您将小数点后的部分转换为整数,所以08
变为8
- 就像var dec_part = 08
会给您8
。
如果您希望小数部分使用字符串操作:
var tmp = value.toFixed(precision).split("."),
int_part = tmp[0],
dec_part = tmp[1];
答案 1 :(得分:1)