如何返回两个小数位的字符串类型

时间:2018-05-20 15:22:49

标签: java arraylist methods return

import java.util.ArrayList;
import java.util.Scanner;

class Loan
{
    double loan;
    public String toString()
    {
        return "Loan: " + loan;
    }
}
class Frame
{
    String framename;
    public String toString()
    {
        return "Frame: " + framename;
    }
}
class Circle
{
    double radius;
    public String toString()
    {
        return "Circle: " + radius;
    }
}
class Main
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        Loan loan = new Loan();
        Frame frame = new Frame();
        Circle circle = new Circle();

        loan.loan = input.nextDouble();
        frame.framename = input.next();
        circle.radius = input.nextDouble();

        ArrayList<Object> mylist = new ArrayList<Object>();
        mylist.add(loan);
        mylist.add(frame);
        mylist.add(circle);

        System.out.println(mylist.get(0));
        System.out.println(mylist.get(1));
        System.out.println(mylist.get(2));

    }
}
  

我想使贷款和圆圈使用toString方法返回两个小数位,我怎么能实现....对象应该在对象的Arraylist中。我尝试使用System.out.printf(&# 34;%。2f&#34;,mylist.get(2))但它没有用。

4 个答案:

答案 0 :(得分:2)

将您的列表声明为ArrayList<Loan> mylist = new ArrayList<Loan>();而不是ArrayList<Object> mylist = new ArrayList<Object>();,然后您可以通过执行以下操作获得预期结果:

 System.out.printf("%.2f",mylist.get(0).loan);

顺便说一句,理想情况下,一个类的所有字段都应该是私有的,并在必要时创建getter和setter。因此,在这种情况下,您可以在loan类中设置Loan私有,然后为其创建一个getter。

答案 1 :(得分:0)

您正在使用&#34; Object&#34;类型的ArrayList。所以你可以把它们放到这些列表中。

将ArrayList的类型设置为&#34; Loan&#34;

ArrayList<Loan> mylist = new ArrayList<Loan>();

你可以从listitems获得贷款价值。

printf("%.2f",mylist.get(0).loan);

答案 2 :(得分:0)

据我所知mylist.get(0)是一个Loan类型的对象而不是double,这可能就是为什么它不起作用,因为printf方法是正确的方法。

你也应该让你的ArrayList成为一个ArrayList,它更干净,可能帮助你避免混淆类型从开头。

答案 3 :(得分:0)

您必须将double类型字段转换为String,以便返回类型正确,并且在转换过程中指定所需字符串的格式,在这种情况下指定2个小数位。

class Loan
{
    double loan;
    public String toString()
    {
        String loanstring = String.format ("%.2f", loan);
        return "Loan: " + loanstring;
    }
}
class Circle
{
    double radius;
    public String toString()
    {
        String radiusstring = String.format ("%.2f", radius);
        return "Circle: " + radiusstring;
    }
}