• 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;
    }
  • 相关阅读:
    Objective-C基础教程读书笔记(6)
    Objective-C基础教程读书笔记(7)
    [置顶] android网络通讯之HttpClient4不指定参数名发送Post
    一些常见的正在表达式
    给EditText中的图片加监听
    HDU 4569Special equations2012长沙邀请赛E题(数学知识)
    Linux malloc大内存的方法
    优秀员工的做法-领先的专业、道路管理
    ZOJ 3324 Machine
    DateUtil
  • 原文地址:https://www.cnblogs.com/zjbky/p/4936641.html
Copyright © 2020-2023  润新知