JS 控制小數(shù)位數(shù)的實(shí)現(xiàn)代碼
更新時(shí)間:2011年08月02日 23:23:08 作者:
上網(wǎng)查一查的確存在這種Bug,除了位數(shù)上控制之外也沒(méi)什么也好的方法(希望高手能提出其它思路)。
昨天在用JS對(duì)前臺(tái)浮點(diǎn)數(shù)進(jìn)行合算時(shí)發(fā)現(xiàn):
0.05+1.08=1.1300000000000001
上網(wǎng)查一查的確存在這種Bug,除了位數(shù)上控制之外也沒(méi)什么也好的方法(希望高手能提出
其它思路)。
于是自己編寫一個(gè)控制小數(shù)位數(shù)的JS方法,解決開(kāi)發(fā)燃眉之急
//小數(shù)位數(shù)控制,可以四舍五入
function Fractional(n) {
//小數(shù)保留位數(shù)
var bit = 2;
//加上小數(shù)點(diǎn)后要擴(kuò)充1位
bit++;
//數(shù)字轉(zhuǎn)為字符串
n = n.toString();
//獲取小數(shù)點(diǎn)位置
var point = n.indexOf('.');
//n的長(zhǎng)度大于保留位數(shù)長(zhǎng)度
if (n.length > point + bit) {
//保留小數(shù)后一位是否大于4,大于4進(jìn)位
if (parseInt(n.substring(point + bit, point + bit + 1)) > 4) {
return n.substring(0, point) + "." + (parseInt(n.substring(point + 1, point + bit)) + 1);
}
else {
return n.substring(0, point) + n.substring(point, point + bit);
}
}
return n;
}
0.05+1.08=1.1300000000000001
上網(wǎng)查一查的確存在這種Bug,除了位數(shù)上控制之外也沒(méi)什么也好的方法(希望高手能提出
其它思路)。
于是自己編寫一個(gè)控制小數(shù)位數(shù)的JS方法,解決開(kāi)發(fā)燃眉之急
復(fù)制代碼 代碼如下:
//小數(shù)位數(shù)控制,可以四舍五入
function Fractional(n) {
//小數(shù)保留位數(shù)
var bit = 2;
//加上小數(shù)點(diǎn)后要擴(kuò)充1位
bit++;
//數(shù)字轉(zhuǎn)為字符串
n = n.toString();
//獲取小數(shù)點(diǎn)位置
var point = n.indexOf('.');
//n的長(zhǎng)度大于保留位數(shù)長(zhǎng)度
if (n.length > point + bit) {
//保留小數(shù)后一位是否大于4,大于4進(jìn)位
if (parseInt(n.substring(point + bit, point + bit + 1)) > 4) {
return n.substring(0, point) + "." + (parseInt(n.substring(point + 1, point + bit)) + 1);
}
else {
return n.substring(0, point) + n.substring(point, point + bit);
}
}
return n;
}
您可能感興趣的文章:
- javascript避免數(shù)字計(jì)算精度誤差的方法詳解
- js計(jì)算精度問(wèn)題小結(jié)
- PHP四舍五入精確小數(shù)位及取整
- C# 小數(shù)位數(shù)保留的方法集錦
- C# double和decimal數(shù)據(jù)類型以截?cái)嗟姆绞奖A糁付ǖ男?shù)位數(shù)
- 用js格式化金額可設(shè)置保留的小數(shù)位數(shù)
- python通過(guò)floor函數(shù)舍棄小數(shù)位的方法
- 關(guān)于數(shù)據(jù)庫(kù)中保留小數(shù)位的問(wèn)題
- java小數(shù)位的例子
- java精度計(jì)算代碼 java指定精確小數(shù)位
相關(guān)文章
Uniapp自定義導(dǎo)航欄并自適應(yīng)機(jī)型的實(shí)現(xiàn)方法
Uniapp 是一款跨平臺(tái)開(kāi)發(fā)框架,可以同時(shí)開(kāi)發(fā)出可以在多個(gè)平臺(tái)上運(yùn)行的應(yīng)用,在開(kāi)發(fā)過(guò)程中,我們常常需要自定義導(dǎo)航欄來(lái)滿足 UI 設(shè)計(jì)的需求,本文將介紹如何在 Uniapp 中自定義導(dǎo)航欄并自適應(yīng)不同機(jī)型的屏幕大小,需要的朋友可以參考下2023-09-09詳解webpack之scss和postcss-loader的配置
本篇文章主要介紹了詳解webpack之scss和postcss-loader的配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01JS 滾動(dòng)事件window.onscroll與position:fixed寫兼容IE6的回到頂部組件
這篇文章主要介紹了JS 滾動(dòng)事件window.onscroll與position:fixed寫兼容IE6的回到頂部組件的相關(guān)資料,需要的朋友可以參考下2016-10-10JS定時(shí)器使用,定時(shí)定點(diǎn),固定時(shí)刻,循環(huán)執(zhí)行詳解
下面小編就為大家?guī)?lái)一篇JS定時(shí)器使用,定時(shí)定點(diǎn),固定時(shí)刻,循環(huán)執(zhí)行詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05js關(guān)閉父窗口時(shí)關(guān)閉子窗口
js關(guān)閉父窗口時(shí)關(guān)閉子窗口的實(shí)例,需要的朋友可以參考一下2013-04-04