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. tensorflow学习笔记一:安装调试

    用过一段时间的caffe后,对caffe有两点感受:1.速度确实快; 2. 太不灵活了. 深度学习技术一直在发展,但是caffe的更新跟不上进度,也许是维护团队的关系:CAFFE团队成员都是业余时间在 ...

  2. C语言与内存模型初探

    #include<stdio.h> #include<string.h> int main(){ long long int a = 2<<30; char str ...

  3. C#多线程同步事件及等待句柄AutoResetEvent 和 ManualResetEvent

    最近捣鼓了一下多线程的同步问题,发现其实C#关于多线程同步事件处理还是很灵活,这里主要写一下,自己测试的一些代码,涉及到了AutoResetEvent 和 ManualResetEvent,当然还有也 ...

  4. iOS地图 -- 定位中的CLLocation的介绍与小练习

    通过定位练习,熟悉CLLocation 在上篇笔记中提到了CLLocation类,这里通过练习来讲解一下这个类,类中包含了获取到的用户位置的信息 coordinate --> 坐标,经度和纬度 ...

  5. 【poj1737】 Connected Graph

    http://poj.org/problem?id=1737 (题目链接) 题意 求n个节点的无向连通图的方案数,不取模w(゚Д゚)w Solution 刚开始想了个第二类斯特林数,然而并不知道怎么求 ...

  6. CSS 概念 & 作用

    http://www.cnblogs.com/moveofgod/archive/2012/09/18/2691101.html 式样定义   如何显示 HTML内容 通常存储在式样表中 作用 : 解 ...

  7. SDL 显示解码后的yuv12数据

    在上篇h264解码为yuv12后http://jhlong12345.blog.163.com/blog/static/1230631292015725115058709/ ,需要显示出来,使用sdl ...

  8. 使用Nominatim进行openstreetmap地址搜索/解析

    Nominatim(来自拉丁语,意思是“名称”)是一个可以按名称和地址来搜索OSM中的数据,并生成OSM点的合成地址的工具(反向地理编码).可用在http://nominatim.openstreet ...

  9. 自定义cell自适应高度

    UITableView在许多App种被大量的应用着,呈现出现的效果也是多种多样的,不能局限于系统的一种样式,所以需要自定义cell 自定义cell呈现的内容也是多种多样的,内容有多有少,所以需要一种能 ...

  10. trigger中insert动作的测试

    Trigger为默认事务 测试环境:sql server 2008 r2 对象:DevList表 目标:确定trigger在数据库中有数据变化时是一次一批一批执行还是,按每条触发执行 测试需求: De ...