function PointFloat(src, pos) {

return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos);
}

//保留小数位数 四舍六入奇进偶舍

function fomatFloat(src, pos) {

var numArray, resultSymbol = "";
if (src < 0) {
resultSymbol = "-";
}
if (pos == "") {
pos = new Number(0);
}
src = src.toString().replace("-", "");
if (src.indexOf('.') > 0) {
numArray = src.split('.');
if (numArray[1].length > pos) {
var endStr, isCarry=false;
if (numArray[1].length > parseFloat(pos) + 1) {
endStr = numArray[1].substring(parseFloat(pos) + 1);
for (var i = 0; i < endStr.length; i++) {
if (endStr[i] > 0) {
isCarry = true;
break;
}
}
}
numArray[1] = numArray[1].substring(0, pos + 1);
var endChar = numArray[1][pos];
var newpoint = new Number("0." + numArray[1].substring(0, pos));
if (endChar >= 5 && pos >= 0) {
if (endChar > 5) {
if (pos == 0) {
numArray[1] = 1;
}
else {
numArray[1] = parseFloat(newpoint) + parseFloat(Math.pow(0.1, pos));
}
}
else if (endChar == 5) {
//5后面有有效数字,直接向前进一位
if (isCarry) {
numArray[1] = parseFloat(newpoint) + parseFloat(Math.pow(0.1, pos));
return PointFloat(resultSymbol + eval(numArray.join("+")), pos);
}
if (pos == 0) {
if (numArray[0] % 2 != 0) {
numArray[1] = 1;
} else {
numArray[1] = 0;
}
return PointFloat(resultSymbol + eval(numArray.join("+")), pos);
}
var preChar = numArray[1][pos - 1];
if (preChar % 2 == 0) {
numArray[1] = newpoint;
}
else {
numArray[1] = parseFloat(newpoint) + parseFloat(Math.pow(0.1, pos));
}
}
return PointFloat(resultSymbol + eval(numArray.join("+")), pos);
}
else {
numArray[1] = newpoint;
return PointFloat(resultSymbol + eval(numArray.join("+")), pos);
}
}
return src; } else {
return resultSymbol + src;
}
return src;
}

js实现四舍六入 奇进偶舍的更多相关文章

  1. sql奇进偶舍函数

     create   function   sslr(@num   numeric(20,10),@i   int) --@i保留的小数位 --@num传入的数据 returns   varchar(2 ...

  2. 关于C# Math 处理奇进偶不进

    话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入.后来到客户现场听客户反馈  Excel实验数据要求 奇进偶不进. 关于 奇进偶不进 产生的由来:从统计学的角度,“奇进 ...

  3. 【学习总结】Python-3-round()函数的奇进偶弃的问题

    参考: 本教程的评论区:菜鸟教程-Python3-Python数字 "4舍6入5看齐,奇进偶不进" 取代"四舍五入". round()函数: 可以在第二个参数指 ...

  4. Math.Round四舍六入五取偶Math.Ceiling只要有小数都加1Math.Floor总是舍去小数

    1.Math.Round:四舍六入五取偶 引用内容 Math.Round(0.0) //0Math.Round(0.1) //0Math.Round(0.2) //0Math.Round(0.3) / ...

  5. JS toFixed 四舍六入五成双

    以前一直以为toFixed就是四舍五入的方法,后来又有一段时间以为toFixed是五舍六入.今天终于写的时候,终于才知道toFixed是一个叫做四舍六入无成双的诡异的方法... 完全不明白为什么要这么 ...

  6. table 奇行偶行

    jquery 方法: $("tr:odd").//偶行 $("tr:even") //奇行

  7. Python3基础 str format 四舍六入五凑偶 保留一位小数

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. JS基础_其他进制的数字(了解)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. HDU-5215 Cycle 无向图判奇环偶环

    题意:给一个无向图,判断这个图是否存在奇环和偶环. 解法:网上有一种只用dfs就能做的解法,但是我不太理解. 这里用的是比较复杂的.首先奇环很简单可以用二分图染色判断.问题是偶环怎么判断?这里我们想, ...

随机推荐

  1. C#基础系列——小话泛型

    前言:前面两章介绍了C#的两个常用技术:C#基础系列——反射笔记 和 C#基础系列——Attribute特性使用 .这一章来总结下C#泛型技术的使用.据博主的使用经历,觉得泛型也是为了重用而生的,并且 ...

  2. EF6 在 SQLite中使用备忘

    == 菜鸟级选手试验在EF6中使用Sqlite,零EF基础,少量Sqlite基础.经过断断续续的很长时间 - _ -! >>连接 1. 安装 使用目前最新版本EF6.1,Sqlite1.0 ...

  3. 备忘:spring jdbc事务代码 mybatis, nhibernate

    http://files.cnblogs.com/files/mikelij/mymavenMar1.rar

  4. 读书笔记---《火球:UML大战需求分析》

    书评 作为一本UML和需求分析的入门书来说还算可以,写的比较接地气,如果是做过很多项目的读者,很容易找到共鸣点. 美中不足:部分概念可能有错误,其中对于Component和Artifact的解释明显和 ...

  5. Java调用Linux命令

    // int tp = 1 返回执行结果  非1 返回命令执行后的输出 public static String runCommand(String cmd, int tp) { StringBuff ...

  6. Spring+EhCache缓存实例

    一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式 ...

  7. poj1986 LCA

    Distance Queries Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 11759   Accepted: 4157 ...

  8. BZOJ3505 [Cqoi2014]数三角形

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  9. 刚开始用git遇到的无法提交变更的问题

    原来我在目录里打开命令行,git bash默认执行的目录是c:/users了,错误的使用了git init,把$HOME 路径下的所有文件载入 git 仓库了,删除$HOME 路径下的".g ...

  10. NPOI操作Excel时使用列头来读取数据的方法

    首先定义扩展方法: public static ICell GetCell(this IRow row, string clounmName) { IRow firstRow = row.Sheet. ...