如何在java中格式化float?

时间:2015-10-05 16:41:33

标签: java

我想在Java中显示带有2个小数位的浮点数据的输出。这是我的代码

import java.util.*;
import java.math.*;

public class SOAL3{
    public static void main(String args[]){
        int k1;
        float s1, t1, s2, t2;
        float hasil, hasil2;
        Car car, car2;
        Scanner input = new Scanner(System.in);
        int decimalPlaces = 2;
        BigDecimal bd;

        k1 = input.nextInt();
        s1 = input.nextFloat();
        t1 = input.nextFloat();
        car = new Car(k1);
        hasil = car.hitung_kecepatan(s1,t1);

        s2 = input.nextFloat();
        t2 = input.nextFloat();
        car2 = new Car();
        hasil2 = car2.hitung_kecepatan(s2,t2);

        System.out.printf("%.2f",hasil);
        car.print_info();

        System.out.printf("%.2f",hasil2);
        car2.print_info();
    }   
}

abstract class Vehicle{
    protected int jenis;
    protected int jumlah_roda;
    protected int kapasitas_tangki;

    public int getJenis(){
        return jenis;
    }

    public int getJumlah_roda(){
        return jumlah_roda;
    }

    public int getKapasitas_tangki(){
        return kapasitas_tangki;
    }

    public void setJenis(int a){
        this.jenis = a;
    }

    public void setJumlah_roda(int a){
        this.jumlah_roda = a;
    }

    public void setKapasitas_tangki(int a){
        this.kapasitas_tangki= a;
    }

    abstract float hitung_kecepatan(float jarak, float waktu);

    public void print_info(){
        System.out.println(jenis);
        System.out.println(jumlah_roda);
        System.out.println(kapasitas_tangki);
    }
}

class Car extends Vehicle{
    Car() {
        setKapasitas_tangki(200);
        setJenis(1);
        setJumlah_roda(4);
    }

    Car(int a){
        setKapasitas_tangki(a);
        setJenis(1);
        setJumlah_roda(4);
    }

    float hitung_kecepatan(float jarak, float waktu){
        return jarak/waktu;
    }
}

但结果无效,我想要的是:

  • 如果值为0.75我想将其显示为0.75
  • 如果值为0.5,我想将其显示为0.50

但结果我得到了:

  • 0.75变为0.751,
  • 0.5变为0.501

帮助我,我无法处理它。感谢..

1 个答案:

答案 0 :(得分:2)

    System.out.printf("%.02f",hasil);
    car.print_info();

    System.out.printf("%.02f",hasil2);
    car2.print_info();