function round(num, iCount) {
// iCount 保留幾位小數
let changeNum = num
let zs = true
// 判斷是否是負數
if (changeNum < 0) {
changeNum = Math.abs(changeNum)
zs = false
}
const iB = Math.pow(10, iCount)
// 有時乘100結果也不精確
const value1 = changeNum * iB
let intDecSet = []
let intDecHun = []
let fValue = value1
const value2 = value1.toString()
const iDot = value2.indexOf('.')
// 如果是小數
if (iDot !== -1) {
intDecSet = changeNum.toString().split('.')
// 如果是科學計數法結果
if (intDecSet[1].indexOf('e') !== -1) {
return Math.round(value1) / iB
}
intDecHun = value2.split('.')
if (intDecSet[1].length <= iCount) {
return parseFloat(num, 10)
}
const fValue3 = parseInt(intDecSet[1].substring(iCount, iCount + 1), 10)
if (fValue3 >= 5) {
fValue = parseInt(intDecHun[0], 10) + 1
} else {
// 對於傳入的形如111.834999999998 的處理(傳入的計算結果就是錯誤的,應為111.835)
if (fValue3 === 4 && intDecSet[1].length > 10 && parseInt(intDecSet[1].substring(iCount + 1, iCount + 2), 10) === 9) {
fValue = parseInt(intDecHun[0], 10) + 1
} else {
fValue = parseInt(intDecHun[0], 10)
}
}
}
// 如果是負數就用0減四捨五入的絕對值
let val = zs ? (fValue / iB) : (0 - fValue / iB)
const d = val.toString().split('.')
if (d.length === 1) {
return val.toString() + '.00'
}
if (d.length > 1) {
if (d[1].length < 2) {
val = val.toString() + '0'
}
return val
}
}
js-正負數保留小數點特定位數
相關文章
- JavaScript浮點數保留兩位小數JavaScript
- js 將負數或小數轉成正整數JS
- 利用js正規表示式校驗正數、負數、和小數JS
- mysql格式化小數保留小數點後兩位(小數點格式化)MySql
- iOS小數點格式化:最多保留兩位小數,小數點後末尾的0不要iOS
- PHP 保留小數點後有效數字(四捨五入)PHP
- hutool jsonutil BigDecimal 保留小數點處理JSONDecimal
- input限制只能輸入整數或保留小數點後2位的浮點數
- 數字,小數點正則,一段話提取數字
- oracle保留兩位小數Oracle
- JavaScript保留兩位或者其他位數小數JavaScript
- android kotlin 小數保留格式化位數AndroidKotlin
- Adroid edittext 輸入小數時只能輸入到小數點後的固定位數
- 影片直播app原始碼,EditText保留小數位數APP原始碼
- Python中怎麼保留小數?Python
- Python如何保留float型別小數點後3位Python型別
- 統計輸入的數字為正數和負數的個數
- Python中負數變成正數常用的方法!Python
- C++保留有效位與保留小數位C++
- 匹配負數正規表示式
- awk判斷整除(包含小數和負數)
- Android&Java保留小數位數的幾種寫法AndroidJava
- 金額正規表示式(相容負號、逗號、小數)
- python列表中切片的正負數Python
- java保留2位小數及BigDecimal使用JavaDecimal
- Math類產生隨機數後保留一位小數隨機
- MySQL保留幾位小數的4種方法MySql
- 數數的位數(正整數)
- 匹配小數正規表示式
- C/C++模運算(正負整數)C++
- Python保留兩位小數五種常用的方法!Python
- 前端保留兩位小數toFixed(2)會有坑前端
- jdk8之stream求和,保留兩位小數JDK
- 手機直播原始碼,flutter 隨機數的生成和保留兩位小數原始碼Flutter隨機
- 二進位制中為什麼負數是正數取反再加一
- 細數動態IP的特點
- 浮點數小知識點
- js精度小數位數正規表示式判斷 - JavaScriptJSJavaScript