0

这里最重要的是我不能设置变量,需要在运行中:

处理纬度。让我们称之为纬度。假设在这种情况下 lat 是 123.4567

lat.toFixed(2).parseFloat();

TypeError: Object 123.35 has no method 'parseFloat'

解决这个问题的最佳方法?

4

1 回答 1

5

toFixed是一个方法Number并返回一个字符串。window.parseFloat是一个全局函数而不是 的方法String,但如果你真的必须,那么你可以把它变成一个String方法,否则就把它当作一个函数来使用。在这种情况下,您甚至可以使用一元加运算符。

(有很多关于增强原生对象的讨论,我不打算讨论,你可以做一些研究并自己决定。)

Javascript

if (!String.prototype.parseFloat) {
    String.prototype.parseFloat = function () {
        return parseFloat(this);
    }
}

var lat = 123.456789;

console.log(parseFloat(lat.toFixed(2)));
console.log(lat.toFixed(2).parseFloat());
console.log(+lat.toFixed(2));

输出

123.46
123.46 
123.46 

jsfiddle 上

于 2013-06-19T18:52:36.767 回答