if(number !=(int)number){
number*=1000;
number=(int)number;
number=(double)number;
number/=1000;
System.out.println("-"+ number);
}
if(number ==(int)number){
System.out.println("-"+ number + "00");
}
//这个部分只有在我输入一个小数点后3位的数字时才有效,我需要1个小数位或2个小数位来工作ex:(12.1我需要它显示12.100)或(12.11显示12.110) )
答案 0 :(得分:0)
如果打印它是唯一需要的,这应该有效。如果您需要返回值,则可以始终将其存储为字符串。
public static void myFormat(double number){
String sign = "";
if (number < 0) { sign = "-";}
int decimalPart, wholePart;
if(number == (int)number){ // number is an integer
System.out.println( (int)number+".000");
}
else { // number has some decimal components
int myNewNum = (int)(number * 1000); // get the portions we need
decimalPart = myNewNum - ( (int)number * 1000 );
wholePart = (myNewNum - decimalPart) / 1000;
//make whole and decimal part positive for formatting purposes
if (decimalPart < 0) { decimalPart *= -1; }
if (wholePart < 0) { wholePart *= -1;}
System.out.println(sign + wholePart + "." + decimalPart);
}
}
这是基于您不能使用任何外部库或方法的假设。它很冗长,但数学是正确的。