• 进位方法


    jsp

    1、四舍六入 基进偶不进

    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;
    }
    function PointFloat(src, pos) {
    return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos);
    }

    2、四舍五入
    Math.round(value*1000)/1000

    3.直接截取3位小数;不到则补零
    function numFormat(value,num){
    var a, b, c, i;
    a = value.toString();
    b = a.indexOf(".");
    c = a.length;
    if (num == 0) {
    if (b != -1) {
    a = a.substring(0, b);
    }
    } else {//如果没有小数点
    if (b == -1) {
    a = a + ".";
    for (i = 1; i <= num; i++) {
    a = a + "0";
    }
    } else {//有小数点,超出位数自动截取,否则补0
    a = a.substring(0, b + num + 1);
    for (i = c; i <= b + num; i++) {
    a = a + "0";
    }
    }
    }
    return a;
    }
    ==================================================================================
    java中
    1、四舍五入
    doubl d = 0.0008;
    String.format("%.3f", d); //0.001
  • 相关阅读:
    Filter 过滤器
    struts2 action接收请求参数和类型转换
    Struts2入门学习
    struts2请求参数校验
    IntelliJ IDEA 使用心得与常用快捷键
    关于动态代理详解
    web.xml文件详解
    关于mysql插入数据异常
    关于控制台输出 警告 log4j:WARN No appenders could be found for logger
    Hive load from hdfs 出错
  • 原文地址:https://www.cnblogs.com/xlj227/p/10621789.html
Copyright © 2020-2023  润新知