Java 如何在不使用math.round或%3f等方法的情况下构造数字?并且只使用if语句,不能使用indexOf
//此部分仅在输入小数点后3位或以上的数字时有效,我需要1位或2位小数才能工作,例如:(12.1我需要它来显示12.100)或(12.11来显示12.110)如果只需要打印它,这应该可以工作。如果需要返回值,则始终可以将其存储为字符串Java 如何在不使用math.round或%3f等方法的情况下构造数字?并且只使用if语句,不能使用indexOf,java,decimal,truncate,Java,Decimal,Truncate,//此部分仅在输入小数点后3位或以上的数字时有效,我需要1位或2位小数才能工作,例如:(12.1我需要它来显示12.100)或(12.11来显示12.110)如果只需要打印它,这应该可以工作。如果需要返回值,则始终可以将其存储为字符串 if(number !=(int)number){ number*=1000; number=(int)number; number=(double)number; number/=1000;
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");
}
publicstaticvoidmyformat(双倍数字){
字符串符号=”;
如果(数字<0){sign=“-”;}
int decimalPart,wholePart;
如果(number==(int)number){//number是一个整数
System.out.println((int)编号+“.000”);
}
else{//number有一些十进制成分
int myNewNum=(int)(number*1000);//获取我们需要的部分
decimalPart=myNewNum-((整数)数字*1000);
wholePart=(myNewNum-decimalPart)/1000;
//为便于格式化,将整部分和小数部分设为正数
如果(decimalPart<0){decimalPart*=-1;}
如果(wholePart<0){wholePart*=-1;}
系统输出打印项次(符号+整数+小数点);
}
}
这是基于不能使用任何外部库或方法的假设。这是冗长的,但数学是正确的。我试图改变这个问题的标题:请做我的家庭作业。我不是要求别人做我的家庭作业,我已经基本完成了代码,只是这一小部分。
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);
}
}