如何在java中打印带小数点和不带小数点的浮点值

如何在java中打印带小数点和不带小数点的浮点值,java,android,Java,Android,这是我的密码 float realvalue = 7.5 worthValue = "£" + String.format(String.valueOf(value - (float) .50)); 我想显示这样的值,如果realvalue为7.5,那么它应该显示worthValue 7,而当realvalue为8时,那么它应该显示worthValue 7.50。请帮助我如何显示浮点值的小数点和小数点。您可以使用DecimalFormatter将您的值格式化为这样 DecimalForm

这是我的密码

 float realvalue = 7.5
  worthValue = "£" + String.format(String.valueOf(value - (float) .50));

我想显示这样的值,如果realvalue为7.5,那么它应该显示worthValue 7,而当realvalue为8时,那么它应该显示worthValue 7.50。请帮助我如何显示浮点值的小数点和小数点。您可以使用DecimalFormatter将您的值格式化为这样

DecimalFormat paymentFormatter = new DecimalFormat("#,###,###.##");
paymentFormatter.format(input);
试着这样做:

String worthValue;
float realValue = 8f;
if (realValue % 1 == 0f) {
    worthValue = String.format("£ %.2f", realValue - 0.5);
} else {
    worthValue = String.format("£ %d", (int) (realValue - 0.5));
}
希望它对你有用

试试这个

static String format(float f) {
    String r = String.format("%.2f", f);
    if (r.endsWith(".00"))
        return r.substring(0, r.length() - 3);
    return r;
}

结果:

£7
£7.50

为什么不使用BigDecimal?您是否可以显示预期输出和正在获得的输出。预期输出如果差值为7.5和7.0,则应分别显示7.50英镑和7英镑。我的实际值为7.5英镑和7英镑浮动真实值=(浮动)7.5;DecimalFormat paymentFormatter=新的DecimalFormat(“#,#,#,#,#,#.#”);格式(realvalue-(float).50);String-worthValue=“£”+String.format(String.valueOf(paymentFormatter));textView.setText(值);我试着这样做,但不起作用
£7
£7.50