java 保留位数问题
发布网友
发布时间:2022-10-17 05:13
我来回答
共4个回答
热心网友
时间:2023-10-27 21:05
还是用Java自带的类处理起来很方便, 给你做个例子吧:
import java.text.DecimalFormat;
public class Test {
public static void main(String[] args) {
double num = 0.235463;
DecimalFormat fmt = new DecimalFormat(".###%");
System.out.println(fmt.format(num));
}
}
// 显示 : 23.546%
其中".###%"中#表示有就显示, 没有就不显示, 所以3个#就是代表, 最多精确到小数点后3位, 再多出来的位会省略.
热心网友
时间:2023-10-27 21:05
不用那么麻烦,
直接用
double v = 0.235463 ;
v = v*1000*100;//乘以1000是保留三位,乘以100是百分比
java.util.Math.round(v);
v = v/1000;//再将v还原
String v_str = v+"%";
看看吧,java里还有一个 NumberFormat这个是转换数字格式对, 还有一个 BigDecimal这个是对分数处理对。
热心网友
时间:2023-10-27 21:06
import java.util.Scanner;
public class Test {
private String f;
private void input() {
System.out.println("输入小数:");
Scanner money = new Scanner(System.in);
this.f=money.nextLine();
}
public String toString(){
char[] result=new char[7];
char[] c=f.toCharArray();
result[0]=c[2];
result[1]=c[3];
result[2]='.';
for(int i=4;i<c.length&&i<7;i++){
result[i-1]=c[i];
}
for(int i=0;i<6;i++){
if(result[i]==0){
result[i]='0';
}
}
result[6]='%';
return String.valueOf(result);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
t.input();
System.out.println(t);
}
}
注意加上正确的package语句
热心网友
时间:2023-10-27 21:06
format();返回类型为字符串。把double格式化为字符串
string
db
=
df.format(t);