Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用math.round或%3f等方法的情况下构造数字?并且只使用if语句,不能使用indexOf_Java_Decimal_Truncate - Fatal编程技术网

Java 如何在不使用math.round或%3f等方法的情况下构造数字?并且只使用if语句,不能使用indexOf

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;

//此部分仅在输入小数点后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;  
    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);
    }
}