十进制格式导致 'void type not allowed here' 错误
Decimal Format Causes 'void type not allowed here' error
在我的 toString 方法中,我所有的变量都打印正常,我的所有代码都没有问题。
我需要编辑以更改小数格式,这样我的数字就不会打印 1E9 或其他任何内容(更长的浮点数),它实际上会打印非科学记数法版本 (123,456,789.00)。
因此,在我的 toString 方法中,我初始化了一个 DecimalFormat 对象并将其实现到我的值中。
在我没有收到关于“'void' 此处不允许类型”的此类错误之前,但是在实施十进制格式之后,它现在为我尝试打印的所有 3 个其他变量提供了错误。
为什么我的 decimalformat 会影响其他变量?
import java.text.DecimalFormat;
public class Project {
String projName; //Name of a project
int projNumber; //Number of a project
String projLocation; //Location of a project
Budget projBudget; //Budget of a project
public Project(double amount) {
this.projName = "?";
this.projNumber = 0;
this.projLocation = "?";
Budget thisBudget = new Budget(amount);
this.projBudget = thisBudget;
}
public String getName(){
return projName;
}
public int getNumber() {
return projNumber;
}
public String getLocation() {
return projLocation;
}
public Budget getBudget() {
return projBudget;
}
public void setName(String aName) {
projName = aName;
}
public void setNumber(int aNumber) {
projNumber = aNumber;
}
public void setLocation(String aLocation) {
projLocation = aLocation;
}
public boolean addExpenditure(double amount) {
return projBudget.addSpending(amount);
}
public String toString() {
String format = "###,###.##";
DecimalFormat decimalFormat = new DecimalFormat(format);
return "\nProject Name:\t\t" + getName() + "\nProject Number:\t\t" + getNumber() + "\nProject Location:\t\t" + getLocation() + "\nBudget:\nInitial Funding\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.initialFunding)) + "\nSpending\t\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.spending)) + "\nCurrent Balance\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.currentBalance)) +"\n\n";
}
}
那是因为 decimalFormat.applyPattern()
输出类型是 void
你可以使用 decimalFormat.format( value )
方法,它的输出是字符串
所以你可以在你的 toString 方法中毫无问题地使用它。
在我的 toString 方法中,我所有的变量都打印正常,我的所有代码都没有问题。
我需要编辑以更改小数格式,这样我的数字就不会打印 1E9 或其他任何内容(更长的浮点数),它实际上会打印非科学记数法版本 (123,456,789.00)。
因此,在我的 toString 方法中,我初始化了一个 DecimalFormat 对象并将其实现到我的值中。
在我没有收到关于“'void' 此处不允许类型”的此类错误之前,但是在实施十进制格式之后,它现在为我尝试打印的所有 3 个其他变量提供了错误。
为什么我的 decimalformat 会影响其他变量?
import java.text.DecimalFormat;
public class Project {
String projName; //Name of a project
int projNumber; //Number of a project
String projLocation; //Location of a project
Budget projBudget; //Budget of a project
public Project(double amount) {
this.projName = "?";
this.projNumber = 0;
this.projLocation = "?";
Budget thisBudget = new Budget(amount);
this.projBudget = thisBudget;
}
public String getName(){
return projName;
}
public int getNumber() {
return projNumber;
}
public String getLocation() {
return projLocation;
}
public Budget getBudget() {
return projBudget;
}
public void setName(String aName) {
projName = aName;
}
public void setNumber(int aNumber) {
projNumber = aNumber;
}
public void setLocation(String aLocation) {
projLocation = aLocation;
}
public boolean addExpenditure(double amount) {
return projBudget.addSpending(amount);
}
public String toString() {
String format = "###,###.##";
DecimalFormat decimalFormat = new DecimalFormat(format);
return "\nProject Name:\t\t" + getName() + "\nProject Number:\t\t" + getNumber() + "\nProject Location:\t\t" + getLocation() + "\nBudget:\nInitial Funding\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.initialFunding)) + "\nSpending\t\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.spending)) + "\nCurrent Balance\t$" + decimalFormat.applyPattern(String.valueOf(projBudget.currentBalance)) +"\n\n";
}
}
那是因为 decimalFormat.applyPattern()
输出类型是 void
你可以使用 decimalFormat.format( value )
方法,它的输出是字符串
所以你可以在你的 toString 方法中毫无问题地使用它。