可配置保留小数位数的四舍五入方法

原创 2007年09月15日 09:36:00
无聊写了个可配置保留小数位数的四舍五入方法,大家有兴趣的就看看,顺便试试有没有没考虑到的问题. (前提传入的参数一定是数字,因为我外面已经处理了)

代码如下:
_____________________________________________
/**
* @param str 处理参数
* @param num 保留小数位数
* @return 返回值
*/
public static String RoundOf(String str, int num){
if(str.indexOf(".") > -1){
String str1 = str.substring(str.indexOf(".") + 1,str.indexOf(".") + 1 + str.length() - (str.indexOf(".") + 1));
int i = 0; if(num < 0) num = 0; //如果指定要保留的小数位小于零,则初始化为零
if(str1.length() > num){
if(Integer.valueOf(str1.substring(num,num + 1)) > 4){
int val = 0;
val = Integer.valueOf(str1.substring(0,num + 1)) + (10 - Integer.valueOf(str1.substring(num,num + 1)));
if(String.valueOf(val).length() > (num + 1)){
i = 1;
str1 = String.valueOf(val).substring(1,num + 1);
}else{
str1 = String.valueOf(val).substring(0,num);
}
}else{
str1 = str1.substring(0,num);
}
if(str.indexOf(".") > 0){
String str2 = str.substring(0,str.indexOf("."));
if(num > 0){
str = String.valueOf(Integer.valueOf(str2) + i) + "." + str1;
}else{
str = String.valueOf(Integer.valueOf(str2) + i);
}
}else{
if(num > 0){
str = String.valueOf(i) + "." + str1;
}else{
str = String.valueOf(i);
}
}
}else if(str1.length() < num){
for(int n = 0;n < (num - str1.length());n++){
str = str + "0";
}
}
}return str;
}
__________________________________________
结束.
 <script type="text/javascript"><!-- google_ad_client = "pub-8894273660285713"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; //2007-09-14: CSDN区 google_ad_channel = "2561687419"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

javascript 保留小数位数,四舍五入

 //保留小数位数,四舍五入 Config.fixedDecimalNum=function(val,num){ var newVal=Math.round(val*Math.pow(1...
  • a_as31243qadfg
  • a_as31243qadfg
  • 2016年07月22日 14:09
  • 140

javascript四舍五入--保留小数位数

/****************************************************************  * value:需要处理的数字  * fixLength:保留...
  • zhoukunhy
  • zhoukunhy
  • 2015年08月26日 12:35
  • 137

C++中保留小数点位数的方法

文章来源:http://blog.sina.com.cn/s/blog_7b83134b0101g4yd.html 在C++中输出一个浮点数n,并保留指定的小数位数,应该怎么处理呢?首先先把iom...
  • qq846294282
  • qq846294282
  • 2016年09月28日 23:34
  • 779

保留两位小数(四舍五入/不四舍五入)

保留两位小数,不四舍五入 方法一: public static String formatDecimal (double value){ final DecimalFormat formate...
  • ting_125
  • ting_125
  • 2017年06月05日 18:33
  • 1386

java中四舍五入的方法

Math.round(double) 四舍五入成long,强制转成int就可以了。 Math.round(float) 四舍五入成int 天花板和地板函数得到的是#.0类型的double,再强...
  • Sdhjt
  • Sdhjt
  • 2009年08月21日 22:21
  • 4259

Java对double值进行四舍五入,保留n位小数的几种方法。其中,只有最后2种是最准确的。

项目要对一个double值保留小数点后3位,网上找到好几种方法,选一个用在项目中,实测发现有误差,再换一种,还是会有误差。最后经过多种情况测试,发现最后一种是精确的。 package com.exam...
  • pbm863521
  • pbm863521
  • 2017年01月06日 10:08
  • 3079

Double float 保留小数点后几位最好用的两个方法 ,四舍五入,国际标准

今天在这里整理了,Double 和float 保留几位小数的最好用的两个方法(四舍五入,国际标准) 直接上代码吧 1. double dou = 231.12678 ; String str ...
  • lixiaoshuai_91
  • lixiaoshuai_91
  • 2016年09月16日 15:04
  • 849

PostgreSQL小数修约

项目源码 https://github.com/kmblack1/pg_round 使用方法 以postgres用户登录到数据库 创建扩展 create extension pg_ruo...
  • kmblack1
  • kmblack1
  • 2017年10月21日 20:53
  • 129

ios中四舍五入的方法

(int)roundf(float或者double类型的数据)
  • zhangkongzhongyun
  • zhangkongzhongyun
  • 2014年03月25日 15:58
  • 7992

double四舍五入并保留两位小数的方法

1.只要输出结果 1 2 double x1 = 0.026; System.out.println(String.format("%.2f", x1)); ...
  • a1610770854
  • a1610770854
  • 2016年03月30日 18:47
  • 2780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:可配置保留小数位数的四舍五入方法
举报原因:
原因补充:

(最多只允许输入30个字)