String.format() 和 DecimalFormat 实际上没有格式化
String.format() and DecimalFormat not actually formatting
我尝试了两种不同的方式来设置一些数字的格式,使其类似于金钱,因此显示为小数点后 2 位。
但是,我尝试将 EditText 字段设置为
EditText.setText (String.format("%.2f, number))
以及:
DecimalFormat precision = new DecimalFormat("0.00");
EditText.setText(String.valueOf(precision.format(number));
而且两者似乎都没有做任何事情,所有内容仍然默认设置为小数点后一位,即 30.0,如果还有其他任何内容,它将转到小数点后 3 位或更多位,即 30.243
试试这个
DecimalFormat precision = new DecimalFormat("0.##");
edittext.setText(precision.format(number));
@梅森·理查森
您是否尝试过setMinimumFractionDigits()
为您的值设置最小分数
DecimalFormat precision = new DecimalFormat("#.##");
dec.setMinimumFractionDigits(2);
EditText.setText(String.valueOf(precision.format(number));
试试这个,
double rews = 100.89478;
String ada = new DecimalFormat("##.##").format(rews);
System.out.println(ada);
Output
100.89
这里.##
所以它会给出2个小数点。如果你想加 3 意味着使用 .###
。
如果要将 5.00 显示为 5,将 5.10 显示为 5.1,请使用:
DecimalFormat formater = new DecimalFormat("#.##");
如果您想将 5.00 显示为 5.00,将 5.10 显示为 5.10,请使用:
DecimalFormat formater = new DecimalFormat("#.00");
您的代码似乎是正确的,但是请看这里,
System.out.printf("Floating point number with 2 decimal digits: %.2f\n",1.21312939123);
System.out.printf("Floating point number with 3 decimal digits: %.3f\n",1.21312939123);
System.out.printf("Floating point number with 8 decimal digits: %.8f\n",1.21312939123);
System.out.printf("String: %s, integer: %d, float: %.6f", "Hello World",89,9.231435);
输出:
Floating point number with 2 decimal digits: 1.21
Floating point number with 3 decimal digits: 1.213
Floating point number with 8 decimal digits: 1.21312939
String: Hello World, integer: 89, float: 9.231435
我尝试了两种不同的方式来设置一些数字的格式,使其类似于金钱,因此显示为小数点后 2 位。 但是,我尝试将 EditText 字段设置为
EditText.setText (String.format("%.2f, number))
以及:
DecimalFormat precision = new DecimalFormat("0.00");
EditText.setText(String.valueOf(precision.format(number));
而且两者似乎都没有做任何事情,所有内容仍然默认设置为小数点后一位,即 30.0,如果还有其他任何内容,它将转到小数点后 3 位或更多位,即 30.243
试试这个
DecimalFormat precision = new DecimalFormat("0.##");
edittext.setText(precision.format(number));
@梅森·理查森
您是否尝试过setMinimumFractionDigits()
为您的值设置最小分数
DecimalFormat precision = new DecimalFormat("#.##");
dec.setMinimumFractionDigits(2);
EditText.setText(String.valueOf(precision.format(number));
试试这个,
double rews = 100.89478;
String ada = new DecimalFormat("##.##").format(rews);
System.out.println(ada);
Output
100.89
这里.##
所以它会给出2个小数点。如果你想加 3 意味着使用 .###
。
如果要将 5.00 显示为 5,将 5.10 显示为 5.1,请使用:
DecimalFormat formater = new DecimalFormat("#.##");
如果您想将 5.00 显示为 5.00,将 5.10 显示为 5.10,请使用:
DecimalFormat formater = new DecimalFormat("#.00");
您的代码似乎是正确的,但是请看这里,
System.out.printf("Floating point number with 2 decimal digits: %.2f\n",1.21312939123);
System.out.printf("Floating point number with 3 decimal digits: %.3f\n",1.21312939123);
System.out.printf("Floating point number with 8 decimal digits: %.8f\n",1.21312939123);
System.out.printf("String: %s, integer: %d, float: %.6f", "Hello World",89,9.231435);
输出:
Floating point number with 2 decimal digits: 1.21
Floating point number with 3 decimal digits: 1.213
Floating point number with 8 decimal digits: 1.21312939
String: Hello World, integer: 89, float: 9.231435