开发十年,就只剩下这套架构体系了! >>>   

在 JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此。 所以我们在打印 1.00 这样的浮点数的结果是 1 而非 1.00 。在一些特殊的数值表示中,例如金额,这样看上去有点变扭,但是至少值是正确了。然而要命的是,当浮点数做数学运算的时候,你经常会发现一些问题会出现四舍五入错误的问题.所以针对浮点运算进行了兼容 精确保留两位小数

/*** 格式化数字* @param num 要格式化的数字* @param len 保留小数位数默认2* @param type 格式化方式0:四舍五入 1:进一  2:舍去 默认0* @return string*/
function format_number(num,len,type) {len = len > 0 && len <= 20 ? len : 2;var result = parseFloat(num);num=isNaN(result)?0:result;var numpow=Math.pow(10,len);var numcheng=accMul(num,numpow);if(type==1){//ceil进一 result = Math.ceil(numcheng);}else if(type==2){//floor舍去result = Math.floor(numcheng);}else{//round四舍五入 result = Math.round(numcheng);}result =accDiv(result,numpow);var s_x = result.toString();var pos_decimal = s_x.indexOf('.');if (pos_decimal < 0) {pos_decimal = s_x.length;s_x += '.';}while (s_x.length <= pos_decimal + len) {s_x += '0';}return s_x;
}
//乘法函数
function accMul(arg1, arg2) {var m = 0, s1 = arg1.toString(), s2 = arg2.toString();try {m += s1.split(".")[1].length;}catch (e) {}try {m += s2.split(".")[1].length;}catch (e) {}return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}
//除法函数
function accDiv(arg1, arg2) {var t1 = 0, t2 = 0, r1, r2;try {t1 = arg1.toString().split(".")[1].length;}catch (e) {}try {t2 = arg2.toString().split(".")[1].length;}catch (e) {}with (Math) {r1 = Number(arg1.toString().replace(".", ""));r2 = Number(arg2.toString().replace(".", ""));return (r1 / r2) * pow(10, t2 - t1);}
}alert(format_number(' 222.a ',3));

可根据提示(round四舍五入 ceil进一 floor舍去) 修改成是任意想要的方法

js 进一法、四舍五入法、舍去法 精确保留两位小数 兼容浮点运算相关推荐

  1. js小数点有0的话就去掉,保留两位小数

    例如: var a=23.0000 console.log(parseFloat(parseFloat(a).toFixed(2)))

  2. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...

  3. JS 四舍五入保留两位小数

    Html 四舍五入保留两位小数: Html: <input type="number" step=".01" id="amount" ...

  4. freemark数值如何保留两位小数的同时,使用进一法

    freemark数值如何保留两位小数的同时,使用进一法 ${200.25?string("#.#")} 这个表达式的结果为200.2:并不是传统的四舍五入规则:正确的应该是下面这个 ...

  5. 将一个大数转为科学计数法并保留两位小数打印

    实现:将一个大数转为科学计数法并保留两位小数打印 BigInteger scienceNum = new BigInteger("12345678901234567890"); S ...

  6. js保留两位小数、取整、四舍五入

    vue.js保留两位小数.取整.四舍五入 保留小数点后两位的四种方法 小数取整 四舍五入 这篇文章适合学习js且又不知道如何保留小数点后两位的友友们阅读哦~ 想讨论更多编程话题 加入qq群聊:1090 ...

  7. js四舍五入并保留两位小数

    js四舍五入并保留两位小数 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家.大家及时保存,说不定啥时候就 ...

  8. php保留两位小数,四舍五入和有小数就进1(可保留两位小数)

    1.直接就向上进1,保留两位小数 ceil(10.521 * 100)/100; 结果10.53: ceil函数就是取整有小数就进12.四舍五入 echo round(5.211, 2); //5.2 ...

  9. python结果四舍五入保留两位小数_Python-根据四舍五入精确保留小数位数的方法...

    目前,Python版本中关于保留指定小数位数的常用方法有以下几种: 1. 使用round()内置函数 print(round(1.234, 2)) 输入结果为:1.23 round()函数中的第一个变 ...

最新文章

  1. js-ES6学习笔记-module(4)
  2. python编程自学能学会吗-小白看看!本人自学Python编程经验分享。
  3. 在 BT5 下对 Red Hat Enterprise Linux 5.4 的一次***测试
  4. 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 )
  5. WINCE基于CH7024实现TV OUT (VGA)功能
  6. mysql自带查询优化_MySQL之select in 子查询优化的实现
  7. 伯克利计算机科学录取率,Berkeley的CS「加州大学伯克利分校计算机科学系」
  8. LeetCode之Sum of Left Leaves
  9. http请求丢部分数据_温故知新,HTTP/2
  10. PCA与图像压缩与去噪
  11. 在哈佛的一场闭门会上,专家说全球各国都应设置“人工智能部长”
  12. android状态栏华为,状态栏设置华为版
  13. 呼叫中心点击拨打接口升级代码
  14. 笔记本电脑摄像头无故不能使用的问题解决方法
  15. re模块与正则表达式 1
  16. 关于Ride的基础认知
  17. xml文件解析(使用解析器)
  18. iOS 解决报错 Module file /Users/anmo/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/3FOJ1MTM...
  19. 初学Python之math模块在哪里?
  20. 云计算在商业智能运用中,主要存在哪些难点?

热门文章

  1. 基于已有模型,训练新数据的方法
  2. 浙江大学计算机博士申请考核,考博经验 | 2020年浙江大学博士申请考核经验分享...
  3. python 插值 —— 如何实现插值,以及错误ValueError: A value in x_new is below the interpolation range.
  4. linux 后台运行jar包 报错no main manifest attribute, in xxx.jar
  5. 网页中嵌套QQ代码设置在线状态无需加好友聊天
  6. 蔚来手机一年内发布/ 微信内测图片视频拖动一键转发/ 马斯克携推特威胁苹果...今日更多新鲜事在此...
  7. SDWAN与区块链——SDWAN CHEAP
  8. 三角形外心坐标c语言,算法提高 12-1三角形   外心坐标
  9. 非常简单的中英互译在线翻译操作方法
  10. alin的学习之路:Qt与多线程