与string对象类似,我们需要先创建一个number对象,然后才能使用number对象的各种方法和属性。要创建一个number对象,可以使用如下代码:
var firstnumber = new number(123);
var secondnumber = new number('123');
然而,也可以声明一个基本数据类型的数值,然后把它作为一个number对象使用。javascript将自动实现从数值到number对象的转换:
var mynumber = 123.765;
与string对象类似,只要javascript能推断出需要转换的对象类型,javascript就能在后台自动地实现从基本类型到对象类型的转换。例如对于如下代码:
var mynumber = "123.567";
javascript能正确地推断出这是一个字符串类型,而不是一个数值类型。因此,不能使用number对象的任何方法。
下面将介绍number对象的一个最常用的方法—— tofixed()方法。
tofixed()方法是javascript 1.5和jscript 5.5中新加入的方法,因此,仅在netscape 6+或ie 5.5+浏览器中支持。该方法用于截取指定小数点位数的数字。下面用一个计算营业税的例子来说明。假如某个商品的价格是9.99美元,而营业税是7.5%,因此加上营业税之后的价格将是10.73925美元。然而,对于货币交易来说这个值是有问题的—— 需要将税后价格截取到小数点之后的两位数即可。下面是一个例子:
var itemcost = 9.99;
var itemcostaftertax = 9.99 * 1.075;
document.write("item cost is $" + itemcostaftertax + "<br>");
itemcostaftertax = itemcostaftertax.tofixed(2);
document.write("item cost fixed to 2 decimal places is " + itemcostaftertax);
第一个document.write()语句将在页面上输出如下信息:
item cost is 10.73925
但是,这并不是我们需要的格式,我们只需要输出到小数点之后的两位数,所以在下面这行代码中使用了tofixed()方法截取小数点之后的两位数字:
itemcostaftertax = itemcostaftertax.tofixed(2);
这里使用了number对象的tofixed()方法,将变量itemcostaftertax中的值截取至小数点后的两位。tofixed()方法只有一个参数,就是我们希望截取的小数点的位数。截取到小数点之后的两位数,则第二个document.write()语句将在页面上输出如下信息:
item cost fixed to 2 decimal places is 10.74
也许你会感到奇怪,为什么截取的结果是10.74而不是10.73呢?tofixed()方法不仅仅截去多余的小数位,同时它还根据截取位置的下一个小数位进行四舍五入。例如,对于数值10.739,截取到小数点后的两位数,结果将是10.74。而对于数值10.732,截取到小数点后的两位数,结果将是10.73。
注意,在javascript中我们只能截取小数点之后0位~20位的小数。
tofixed()方法仅被高版本的浏览器所支持,所以在使用之前最好先检查一下浏览器是否支持该方法,检查的代码如下所示:
var varnumber = 22.234;
if (varnumber.tofixed)
{
// browser supports tofixed() method
varnumber = varnumber.tofixed(2)
}
else
{
// browser doesn’t support tofixed() method so use some other code
var div = math.pow(10,2);
varnumber = math.round(varnumber * div) / div;
}
新闻热点
疑难解答