gpt4 book ai didi

java - 如何在不使用 math.round 或 %3f 等方法的情况下截断数字? AND 仅使用 if 语句,不能使用 indexOf

转载 作者:行者123 更新时间:2023-12-01 04:14:07 24 4
gpt4 key购买 nike

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 位小数才能工作,例如: (12.1 我需要它显示 12.100) 或 (12.11 显示 12.110 )

最佳答案

如果打印是唯一需要的,那么这应该可行。如果您需要返回一个值,您始终可以将其存储为字符串。

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);
}
}

这是基于您不能使用任何外部库或方法的假设。虽然很冗长,但数学是正确的。

关于java - 如何在不使用 math.round 或 %3f 等方法的情况下截断数字? AND 仅使用 if 语句,不能使用 indexOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com