如何返回两位小数的字符串类型 import java.util.ArrayList; 导入java.util.Scanner; 集体贷款 { 双重贷款; 公共字符串toString() { 返回“贷款:+贷款; } } 类框架 { 字符串帧名; 公共字符串toString() { 返回“Frame:+framename; } } 班级圈子 { 双半径; 公共字符串toString() { 返回“圆:”+半径; } } 班长 { 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(System.in); 贷款=新贷款(); 框架=新框架(); 圆圈=新圆圈(); loan.loan=input.nextDouble(); frame.framename=input.next(); circle.radius=input.nextDouble(); ArrayList mylist=新的ArrayList(); 添加(贷款); 添加(框架); mylist.add(圆圈); System.out.println(mylist.get(0)); System.out.println(mylist.get(1)); System.out.println(mylist.get(2)); } }

如何返回两位小数的字符串类型 import java.util.ArrayList; 导入java.util.Scanner; 集体贷款 { 双重贷款; 公共字符串toString() { 返回“贷款:+贷款; } } 类框架 { 字符串帧名; 公共字符串toString() { 返回“Frame:+framename; } } 班级圈子 { 双半径; 公共字符串toString() { 返回“圆:”+半径; } } 班长 { 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(System.in); 贷款=新贷款(); 框架=新框架(); 圆圈=新圆圈(); loan.loan=input.nextDouble(); frame.framename=input.next(); circle.radius=input.nextDouble(); ArrayList mylist=新的ArrayList(); 添加(贷款); 添加(框架); mylist.add(圆圈); System.out.println(mylist.get(0)); System.out.println(mylist.get(1)); System.out.println(mylist.get(2)); } },java,arraylist,methods,return,Java,Arraylist,Methods,Return,我想让贷款和圆返回两位小数点后使用toString方法我如何才能做到这一点。。。。对象应该位于对象的Arraylist中。我尝试使用System.out.printf(“%.2f”,mylist.get(2)),但不起作用 将列表声明为ArrayList mylist=new ArrayList()而不是ArrayList mylist=new ArrayList()然后您可以通过执行以下操作获得预期结果: import java.util.ArrayList; import java.util

我想让贷款和圆返回两位小数点后使用toString方法我如何才能做到这一点。。。。对象应该位于对象的Arraylist中。我尝试使用System.out.printf(“%.2f”,mylist.get(2)),但不起作用


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

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));

    }
}

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

您使用的是类型为“Object”的ArrayList。所以你可以把所有的东西都放进这个列表

将ArrayList的类型设置为“Loan”

在我看来,mylist.get(0)是Loan类型的对象,而不是double,这可能就是它不起作用的原因,因为printf方法是正确的方法


您还应该将ArrayList改为ArrayList,它更简洁,可能有助于避免从一开始就混淆类型。

您必须将双精度类型字段转换为字符串,以便返回类型正确,并且在转换过程中指定所需字符串的格式。在本例中,请指定两位小数位

printf("%.2f",mylist.get(0).loan);
ArrayList<Loan> mylist = new ArrayList<Loan>();
printf("%.2f",mylist.get(0).loan);
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;
    }
}