gpt4 book ai didi

java - 在 toString 中格式化我的货币输出

转载 作者:行者123 更新时间:2023-12-01 22:24:55 25 4
gpt4 key购买 nike

除了格式错误之外,我的代码工作正常。例如它正在输出:当我需要输出 Teriyaki $.25 时,Teriyaki $0.25。唯一输出错误的是小数点前面的 0。其余的都是正确的。我怎样才能解决这个问题?这是我的代码:

import java.text.NumberFormat;

public class MenuItem
{
private String name;
private double price;

public MenuItem (String name, double price)
{
this.name = name;
this.price = price;
}

public String getName()
{
return name;
}

public double getPrice()
{
return price;
}

public String toString()
{
return (getName() + " " + NumberFormat.getCurrencyInstance().format(getPrice()));
}
}

测试代码为:

import java.util.Scanner;
import java.util.Vector;

public class sol
{
public static void main(String[] args)
{
/* Read from keyboard */
Scanner keys = new Scanner(System.in);
/* Create dynamic list */
Vector<MenuItem> list = new Vector<MenuItem>();
/* While there is input waiting */
while (keys.hasNext())
{
/* Prompt the user */
System.out.println("Enter product name and price");
/* Test the constructor */
list.add(new MenuItem(keys.next(), keys.nextDouble()));
}
/* Test toString (implicitly called when passed to println) */
System.out.println("Testing toString");
for (MenuItem mi : list)
System.out.println(mi);
/* Test getters */
System.out.println("Testing getters");
for (MenuItem mi : list)
System.out.println("Item: " + mi.getName() + " Price: " + mi.getPrice());
/* Close keyboard stream */
keys.close();
}

}

谢谢

最佳答案

创建 DecimalFormat以您希望的方式构造十进制数字

    DecimalFormat twoDForm = new DecimalFormat("#.00");
Double d = Double.parseDouble("0.25");
String s = twoDForm.format(d);
System.out.println(s);

格式中的#表示:

Digit, zero shows as absent

它将输出.25,但如果它非零,仍然显示前导数字

关于java - 在 toString 中格式化我的货币输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com