js实现四舍六入 奇进偶舍
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实现四舍六入 奇进偶舍的更多相关文章
- sql奇进偶舍函数
create function sslr(@num numeric(20,10),@i int) --@i保留的小数位 --@num传入的数据 returns varchar(2 ...
- 关于C# Math 处理奇进偶不进
话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入.后来到客户现场听客户反馈 Excel实验数据要求 奇进偶不进. 关于 奇进偶不进 产生的由来:从统计学的角度,“奇进 ...
- 【学习总结】Python-3-round()函数的奇进偶弃的问题
参考: 本教程的评论区:菜鸟教程-Python3-Python数字 "4舍6入5看齐,奇进偶不进" 取代"四舍五入". round()函数: 可以在第二个参数指 ...
- 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) / ...
- JS toFixed 四舍六入五成双
以前一直以为toFixed就是四舍五入的方法,后来又有一段时间以为toFixed是五舍六入.今天终于写的时候,终于才知道toFixed是一个叫做四舍六入无成双的诡异的方法... 完全不明白为什么要这么 ...
- table 奇行偶行
jquery 方法: $("tr:odd").//偶行 $("tr:even") //奇行
- Python3基础 str format 四舍六入五凑偶 保留一位小数
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- JS基础_其他进制的数字(了解)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- HDU-5215 Cycle 无向图判奇环偶环
题意:给一个无向图,判断这个图是否存在奇环和偶环. 解法:网上有一种只用dfs就能做的解法,但是我不太理解. 这里用的是比较复杂的.首先奇环很简单可以用二分图染色判断.问题是偶环怎么判断?这里我们想, ...
随机推荐
- javaScript中的页面传值
function getURIParam(name) { var search = window.location.search; search = search.substring(1); if ( ...
- JavaScript模板引擎artTemplate.js——如何引入模板引擎?
artTeamplate.js在github上的地址:artTemplate性能卓越的js模板引擎 引入模板引擎,就是引入外部javascript啦,并且artTemplate.js不依赖其他第三方库 ...
- asp.net mvc4+mysql做一个简单分页组件(部分视图)
在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstr ...
- Linux下压缩音频文件
安装工具 sudo apt-get install lame 具体用法可以查看帮助 lame --help 通过更改音频文件的帧数 可以让文件变小 但是音质也会随之下降 现在比较多的mp3文件是1 ...
- javascript闭包理解
//闭包理解一 function superFun(){ var _super_a='a'; function subfuc(){ console.log(_super_a); } return su ...
- bzoj 3262 陌上花开
本质是一个三维偏序,一位排序后cdq分治,一维在子函数里排序,一维用树状数组维护. 把三维相等的合并到一个里面. #include<iostream> #include<cstdio ...
- 项目中CKEditor修改宽度为自适应
项目中用到CKEditor,在config.js中直接定义config.width使得宽度无法自适应,尝试了好多次后发现了一种方法: 放弃在config.js中配置宽度 在页面检查元素,找到id为ck ...
- Unity 小问题
Cannot cast from source type to destination 我用Object 转 int 会出现这个错误提示 例如 : object p; int pp = (int)p; ...
- eclipse项目部署路径
1.项目名点击右键 2.选择Build Path ------>Configure Build Path... 3.选择Source ----->Default output fol ...
- thinkphp标签
1.volist标签 随后一条不一样的输出<volist name="pagehead" id="vo"> <if condition=&qu ...