public String round(double v,int num){ String fmt = "0000000000000000";//16位 fmt = num>0?"0."+fmt.substring(0,num):"0"; DecimalFormat df = new DecimalFormat(fmt); return(df.format(v)); }
根据楼主的要求,写了一个,测试没有问题,楼主结贴吧 import java.text.*; public class DoubleFormat { public static void main(String[]args) { DoubleFormat t = new DoubleFormat(); System.out.print(t.doubleOutPut(12.369,2)); } public String doubleOutPut(double v,Integer num) { if (v == Double.valueOf(v).intValue()) return Double.valueOf(v).intValue()+""; else { NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(2); formatter.setMinimumFractionDigits(2); return formatter.format(v); }
}
}
上面的不是有个变量没有代进去. 这下好了. import java.text.*; public class DoubleFormat { public static void main(String[]args) { DoubleFormat t = new DoubleFormat(); System.out.print(t.doubleOutPut(12.369,2)); } public String doubleOutPut(double v,Integer num) { if (v == Double.valueOf(v).intValue()) return Double.valueOf(v).intValue()+""; else { NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(num); formatter.setMinimumFractionDigits(num); return formatter.format(v); }
}
}
To: wuheng66888(吴恒) 你好! 怎么把保留的小数点四舍五入呢?如12.345,2 想得到结果12.35 能再帮我想一下么?谢谢啊! import java.text.*; public class DoubleFormat { public static void main(String[]args) { DoubleFormat t = new DoubleFormat(); System.out.print(t.doubleOutPut(12.345,2)); } public String doubleOutPut(double v,int num) { if (v == Double.valueOf(Double.toString(v)).intValue()) return Double.valueOf(Double.toString(v)).intValue()+""; else { NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(num); formatter.setMinimumFractionDigits(num); return formatter.format(v); }
}
}
To: javafreshfish() 你好! 你的这个方法 若传12,3 则返回12.0,期望结果是12 传12,2则抛异常,能再帮我看看么?谢谢! public class DoubleFormat { public static void main(String[] args) { DoubleFormat t = new DoubleFormat(); System.out.print(t.round(12, 2)); } public String round(double v, int num) { String value = "" + v; int index = value.indexOf("."); if (index != -1) { if (num + index <= value.length()) { String getString = value.substring(0, (num + index + 1)); return getString; } } return value; } }
public class Test { public static void main(String[] args) { Test t = new Test(); System.out.print(t.round(12.345, 2)); } public String round(double v, int num) { String multipliedValue = Math.round(v * Math.pow(10, num)) + ""; String outputValue = multipliedValue.substring(0 , multipliedValue.length() - num) ; outputValue += "."; outputValue += multipliedValue.substring(outputValue.length() - 1 ,multipliedValue.length()); return outputValue; } }
public class Test { public static void main(String[] args) { Test t = new Test(); System.out.print(t.round(12.345, 0)); } public String round(double v, int num) { if (num == 0) { return String.valueOf(Math.round(v)); } String multipliedValue = Math.round(v * Math.pow(10, num)) + ""; String outputValue = multipliedValue.substring(0 , multipliedValue.length() - num) ; outputValue += "."; outputValue += multipliedValue.substring(outputValue.length() - 1 ,multipliedValue.length()); return outputValue; } }
public class 测试数值{
public static String round(double a,int number){ int 整数=(int)a; if( a==整数||number==0) return ""+整数;
String s=String.valueOf(a); int len=s.length(); int index=s.indexOf("."); String 整数部分=s.substring(0,index);
若返回的不是-1
再用subString()方法截取"."以后你要的长度
String value=""+v;
int index=value.indexOf(".");
if(index!=-1){
if(num+index<=value.length())
{
String getString=value.subString(0,num+index+1);
return getString;
}
}
return value;
}
String fmt = "0000000000000000";//16位
fmt = num>0?"0."+fmt.substring(0,num):"0";
DecimalFormat df = new DecimalFormat(fmt);
return(df.format(v));
}
import java.text.*;
public class DoubleFormat
{
public static void main(String[]args)
{
DoubleFormat t = new DoubleFormat();
System.out.print(t.doubleOutPut(12.369,2));
}
public String doubleOutPut(double v,Integer num)
{
if (v == Double.valueOf(v).intValue())
return Double.valueOf(v).intValue()+"";
else
{
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
return formatter.format(v);
}
}
}
这下好了.
import java.text.*;
public class DoubleFormat
{
public static void main(String[]args)
{
DoubleFormat t = new DoubleFormat();
System.out.print(t.doubleOutPut(12.369,2));
}
public String doubleOutPut(double v,Integer num)
{
if (v == Double.valueOf(v).intValue())
return Double.valueOf(v).intValue()+"";
else
{
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(num);
formatter.setMinimumFractionDigits(num);
return formatter.format(v);
}
}
}
import java.text.*;
public class DoubleFormat
{
public static void main(String[]args)
{
DoubleFormat t = new DoubleFormat();
System.out.print(t.doubleOutPut(12.345,2));
}
public String doubleOutPut(double v,int num)
{
if (v == Double.valueOf(Double.toString(v)).intValue())
return Double.valueOf(Double.toString(v)).intValue()+"";
else
{
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(num);
formatter.setMinimumFractionDigits(num);
return formatter.format(v);
}
}
}
public class DoubleFormat {
public static void main(String[] args) {
DoubleFormat t = new DoubleFormat();
System.out.print(t.round(12, 2));
} public String round(double v, int num) {
String value = "" + v;
int index = value.indexOf(".");
if (index != -1) {
if (num + index <= value.length()) {
String getString = value.substring(0, (num + index + 1));
return getString;
}
}
return value;
}
}
public static void main(String[] args) {
Test t = new Test();
System.out.print(t.round(12.345, 2));
} public String round(double v, int num) {
String multipliedValue = Math.round(v * Math.pow(10, num)) + "";
String outputValue = multipliedValue.substring(0
, multipliedValue.length() - num) ;
outputValue += ".";
outputValue += multipliedValue.substring(outputValue.length() - 1
,multipliedValue.length());
return outputValue;
}
}
public static void main(String[] args) {
Test t = new Test();
System.out.print(t.round(12.345, 0));
} public String round(double v, int num) {
if (num == 0) {
return String.valueOf(Math.round(v));
}
String multipliedValue = Math.round(v * Math.pow(10, num)) + "";
String outputValue = multipliedValue.substring(0
, multipliedValue.length() - num) ;
outputValue += ".";
outputValue += multipliedValue.substring(outputValue.length() - 1
,multipliedValue.length());
return outputValue;
}
}
public static String round(double a,int number){
int 整数=(int)a;
if( a==整数||number==0) return ""+整数;
String s=String.valueOf(a);
int len=s.length();
int index=s.indexOf(".");
String 整数部分=s.substring(0,index);
if(index+number<len) {
String 小数部分=s.substring(index,index+number+1);
return 整数部分+小数部分;
}
System.out.println("保留的位数太多了,我将返回整数部分");
return 整数部分;
}
public static void main(String[]args){
String s= round(12,2);
System.out.println(s);
}
}