【问题标题】:How to format float in java? [duplicate]如何在java中格式化浮点数? [复制]
【发布时间】:2016-01-02 09:44:30
【问题描述】:

我想在 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

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

【问题讨论】:

  • car.print_info(); 打印出什么?请注意,System.out.printf() 末尾不包含换行符。

标签: java


【解决方案1】:
    System.out.printf("%.02f",hasil);
    car.print_info();

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

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2016-04-18
    相关资源
    最近更新 更多