沫沫金:自定义四舍五入(根据第二位决定是进位或直接替换为5)

编程入门 行业动态 更新时间:2024-10-09 05:16:59

沫沫金:<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义四舍五入(根据第二位决定是进位或直接替换为5)"/>

沫沫金:自定义四舍五入(根据第二位决定是进位或直接替换为5)

需求:

根据小数点后第二位,判断大于5进位,小于等于5则将第二位替换为5。


本人一遍没有写完善,这里贴出后期完善后的代码(欢迎各位提供漏洞)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /**   * 根据小数点第二位,进行判断   * @author 章力   * @email zl0828@yeah   */ public  static  String round(BigDecimal bgd){      // 只获取小数点后两位      DecimalFormat dfmt =  new  DecimalFormat( "0.##" );      String bgdStr = dfmt.format(bgd);      // 小数点下标      int  idx = bgdStr.indexOf( "." );      if (idx> 0 ){          // 整数部分          String intStr =  bgdStr.substring( 0 ,idx);          // 小数点后第1位数          String postOne = bgdStr.substring(idx+ 1 , idx+ 2 );          // 规则计算后的数值          String newNumU = dfmt.format(Double.parseDouble(intStr+ "." +postOne)+ 0.1 );          String newNumD = intStr+ "." +postOne+ "5" ;                    // 小数点后只有一位小数,默认第二位是零>小于5,直接替换为5          int  postnL = bgdStr.length()-(idx+ 1 );          if (postnL< 2 ){              return  newNumD;          }          // 小数点后有第二位,进行规则判断          // 大于5,向上进位          // 小于等于5,直接替换为5          int  postTwo = Integer.parseInt(bgdStr.substring(idx+ 2 ));          if (postTwo> 5 ){              return  newNumU;          } else {              return  newNumD;          }      } else {          return  bgdStr+ ".05" ;      } }



本文转自 沫沫金 51CTO博客,原文链接:,如需转载请自行联系原作者

更多推荐

沫沫金:自定义四舍五入(根据第二位决定是进位或直接替换为5)

本文发布于:2024-03-15 11:24:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738781.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   四舍五入   沫沫

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!