Posts Tagged ‘ float

JavaScript中保留小数点的函数

今天在做项目中,需要把价格保留两位小数点,但用parseFloat的方法不能够把整数格式成后面加两个小数位的数。在网上找,很多都是用Math.round的方法格式化的,太麻烦,后来找到了国外的这篇文章:《JavaScript Number Format – Decimal Precision》,里面介绍了我从未见过的两个函数——toFixedtoPrecision

Number.toFixed(),这个函数需要传入一个整数做为参数,用于决定保留几位小数点。用法如下:


var num = 10;
alert(num.toFixed(2)); // 返回 10.00
num = 123.45678;
alert(num.toFixed(3)); // 返回 123.457,它会自动四舍五入

Number.toPrecision()用法和Number.toFixed()一样,不过toPrecision中的参数是用来决定保留整位和小数位的总数。如下:


var num = 1234.5678;
alert(num.toPrecision(6)); // 返回 1234.57,它会自动四舍五入
alert(num.toPrecision(4)); // 返回 1235,它会自动四舍五入
alert(num.toPrecision(2)); // 返回 12e+3

如果想正常使用这两个函数,你的浏览器必需是Netscape 6.0+或者IE 5.5+,也就是说现在绝大多数的浏览器已经支持这两个函数了。需要注意的是这两个函数有时也会出现bug,如下的代码:


var num = 123.395;
alert(num.toFixed(2));
alert(num.toPrecision(5));

在IE中,它们都能够正确返回我们所期望的值:123.40,但在火狐和谷歌浏览器中却返回123.39。Bug原因《JavaScript Number Format – Decimal Precision》中已经给出了解释,有兴趣的朋友可以去看看。

自动清除浮动

在做网页时经常会碰到元素的自动清除浮动问题,现记下两种解决方法。设有网页元素如下:

<div class="container">
	<div class="left">
        左浮动元素<br />
        左浮动元素<br />
        左浮动元素<br />
        左浮动元素<br />
        左浮动元素<br />
        左浮动元素<br />
        左浮动元素<br />
    </div>
    <div class="right">
        右浮动元素<br />
        右浮动元素<br />
        右浮动元素<br />
        右浮动元素<br />
        右浮动元素<br />
        右浮动元素<br />
        右浮动元素<br />
	</div>
</div>

若要class值为“container”中的两个元素分别左右浮动,则需以下CSS代码:

div.container{
    width:100%;
    background:#ff9;
}
div.left{
    width: 45%;
    float: left;
}
div.right {
    width: 45%;
    float: right;
}

常用清除浮动的CSS代码如下:

阅读全文