javascript實(shí)現(xiàn)保留兩位小數(shù)的多種方法
第一種方法:javascript實(shí)現(xiàn)保留兩位小數(shù)一位自動(dòng)補(bǔ)零代碼實(shí)例:
第一種方法介紹一下如何實(shí)現(xiàn)對(duì)數(shù)字保留兩位小數(shù)效果,如果數(shù)字的原本小數(shù)位數(shù)不到兩位,那么缺少的就自動(dòng)補(bǔ)零,這個(gè)也是為了統(tǒng)一的效果,先看代碼實(shí)例:
function returnFloat(value){
var value=Math.round(parseFloat(value)*100)/100;
var xsd=value.toString().split(".");
if(xsd.length==1){
value=value.toString()+".00";
return value;
}
if(xsd.length>1){
if(xsd[1].length<2){
value=value.toString()+"0";
}
return value;
}
}
var num=3.1;
console.log(returnFloat(num));
上面的代碼實(shí)現(xiàn)了我們的要求,下面介紹一下它的實(shí)現(xiàn)過(guò)程。
代碼注釋:
1.function returnFloat(value){},參數(shù)是要被轉(zhuǎn)換的數(shù)字。
2.var value=Math.round(parseFloat(value)*100)/100,這個(gè)應(yīng)該是函數(shù)的核心之處,parseFloat(value)將參數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù),因?yàn)閰?shù)有可能是字符串,乘以100是因?yàn)橐A魞晌恍?shù),先將小數(shù)點(diǎn)向右移動(dòng)兩個(gè)位數(shù),然后再利用Math.round()方法實(shí)行四舍五入計(jì)算,最后除以100,這樣就實(shí)現(xiàn)了保留保留兩位小數(shù),并且還具有四舍五入效果,但是這個(gè)并不完美,如果參數(shù)數(shù)字本身的小數(shù)位數(shù)大于等于2是可以的,如3.1415,但是如3或者3.0這樣的還是沒(méi)有完美的實(shí)現(xiàn),繼續(xù)看下面。
3.var xsd=value.toString().split("."),使用點(diǎn)"."value分隔成一個(gè)數(shù)組。
4.if(xsd.length==1){value=value.toString()+".00";return value;},如果數(shù)組的長(zhǎng)度是1,也就是說(shuō)不存在小數(shù),那么就會(huì)為這個(gè)數(shù)字添加兩個(gè)0,例如3會(huì)被轉(zhuǎn)換成3.00。
5.
if(xsd.length>1){
if(xsd[1].length<2){
value=value.toString()+"0";
}
return value;
}
if(xsd.length>1)用來(lái)判斷數(shù)字的長(zhǎng)度是否大于1,也就是數(shù)字是否具有小數(shù),如有小數(shù),但是小數(shù)的位數(shù)小于2,也就是類(lèi)似3.1這樣的,就會(huì)在后面加一個(gè)0,也就是會(huì)轉(zhuǎn)換為3.10。
第二種方法:匯總JS中格式化數(shù)據(jù)保留兩位小數(shù)的函數(shù)的多種方法
最好方法:
保留兩位好像是這樣吧
var a = 9.39393; alert(a.toFixed(2));
說(shuō)明:
alert(Number.toFixed(9.39393));
返回的是9.39
但是只有ie5.5以上的版本才支持。
其它方法:
方法一:
function roundFun(numberRound,roundDigit) //四舍五入,保留位數(shù)為roundDigit
{
if (numberRound>=0)
{
var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);
return tempNumber;
}
else
{
numberRound1=-numberRound
var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);
return -tempNumber;
}
}
方法二:
<script>
tmp = "1234567.57232"
result = tmp.substr(0,tmp.indexOf(".")+3);
alert(result);
</script>
第三種方法:javascript保留兩位小數(shù)代碼
<script type="text/javascript">
//保留兩位小數(shù)
//功能:將浮點(diǎn)數(shù)四舍五入,取小數(shù)點(diǎn)后2位
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x*100)/100;
return f;
}
//制保留2位小數(shù),如:2,會(huì)在2后面補(bǔ)上00.即2.00
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x*100)/100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
function fomatFloat(src,pos){
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
}
//四舍五入
alert("保留2位小數(shù):" + toDecimal(3.14159267));
alert("強(qiáng)制保留2位小數(shù):" + toDecimal2(3.14159267));
alert("保留2位小數(shù):" + toDecimal(3.14559267));
alert("強(qiáng)制保留2位小數(shù):" + toDecimal2(3.15159267));
alert("保留2位小數(shù):" + fomatFloat(3.14559267, 2));
alert("保留1位小數(shù):" + fomatFloat(3.15159267, 1));
//五舍六入
alert("保留2位小數(shù):" + 1000.003.toFixed(2));
alert("保留1位小數(shù):" + 1000.08.toFixed(1));
alert("保留1位小數(shù):" + 1000.04.toFixed(1));
alert("保留1位小數(shù):" + 1000.05.toFixed(1));
//科學(xué)計(jì)數(shù)
alert(3.1415.toExponential(2));
alert(3.1455.toExponential(2));
alert(3.1445.toExponential(2));
alert(3.1465.toExponential(2));
alert(3.1665.toExponential(1));
//精確到n位,不含n位
alert("精確到小數(shù)點(diǎn)第2位" + 3.1415.toPrecision(2));
alert("精確到小數(shù)點(diǎn)第3位" + 3.1465.toPrecision(3));
alert("精確到小數(shù)點(diǎn)第2位" + 3.1415.toPrecision(2));
alert("精確到小數(shù)點(diǎn)第2位" + 3.1455.toPrecision(2));
alert("精確到小數(shù)點(diǎn)第5位" + 3.141592679287.toPrecision(5));
</script>
以上就是javascript實(shí)現(xiàn)保留兩位小數(shù)的多種方法,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
js如何實(shí)現(xiàn)設(shè)計(jì)模式中的模板方法
都知道在js中如果定義兩個(gè)相同名稱(chēng)的方法,前一個(gè)方法就會(huì)被后一個(gè)方法覆蓋掉,使用此特點(diǎn)就可以實(shí)現(xiàn)模板方法,感興趣的朋友可以了解下本文哈2013-07-07
詳解webpack import()動(dòng)態(tài)加載模塊踩坑
這篇文章主要介紹了詳解webpack import()動(dòng)態(tài)加載模塊踩坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)帶動(dòng)畫(huà)返回頂部的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)帶動(dòng)畫(huà)返回頂部的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08
javascript實(shí)現(xiàn)可全選、反選及刪除表格的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)可全選、反選及刪除表格的方法,實(shí)例展示了javascript針對(duì)表格全選、反選、刪除、隔行變色、刪除提示等常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
利用JavaScript實(shí)現(xiàn)簡(jiǎn)單3D開(kāi)關(guān)書(shū)本模型
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)簡(jiǎn)單3D開(kāi)關(guān)書(shū)本模型的效果,文中的實(shí)現(xiàn)代碼講解的非常詳細(xì),具有一定參考價(jià)值,感興趣的同學(xué)可以動(dòng)手嘗試一下2023-11-11
JavaScript實(shí)現(xiàn)單擊下拉框選擇直接跳轉(zhuǎn)頁(yè)面的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)單擊下拉框選擇直接跳轉(zhuǎn)頁(yè)面的方法,涉及javascript控制頁(yè)面跳轉(zhuǎn)的相關(guān)技巧,需要的朋友可以參考下2015-07-07

