Java toString中点后的两位数字
我设法使这两个类,但“分数”必须有7位数字后的点。我不能修改主类。我想我应该使用String.format(“%.7f”,…),但我不知道在哪里。请帮忙 MAIN:Java toString中点后的两位数字,java,decimal,digits,Java,Decimal,Digits,我设法使这两个类,但“分数”必须有7位数字后的点。我不能修改主类。我想我应该使用String.format(“%.7f”,…),但我不知道在哪里。请帮忙 MAIN: public class Main { public static void main(String[] args) { Calc c = new Calc(); String score = c.doCalc(args[0]); System.out.println(scor
public class Main {
public static void main(String[] args) {
Calc c = new Calc();
String score = c.doCalc(args[0]);
System.out.println(score);
}
}
public class Calc {
public String doCalc(String cmd) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
return engine.eval(cmd).toString();
}
catch (ScriptException e) {
return "Invalid command to calc";
}
}
}
计算:
public class Main {
public static void main(String[] args) {
Calc c = new Calc();
String score = c.doCalc(args[0]);
System.out.println(score);
}
}
public class Calc {
public String doCalc(String cmd) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
return engine.eval(cmd).toString();
}
catch (ScriptException e) {
return "Invalid command to calc";
}
}
}
不要使用
system.out.println
,而应该使用system.out.format
或system.out.printf
。请参阅Oracle关于如何使用它的简短教程。为什么不能修改主类?这似乎是打印分数的地方。您可以将字符串结果解析回Double
,并将其馈送到string。格式
:
try {
return String.format("%.7f", Double.valueOf(engine.eval(cmd).toString()));
}
catch (Exception e) {
return "Invalid command to calc";
}
当然,您可以直接将结果馈送到String.format
,而无需toString
和valueOf
往返,如下所示:
return String.format("%.7f", engine.eval(cmd));
但只有当eval结果是有效的浮点数时,这才有效。要处理整数或非数字等其他情况,您必须进行一些类型检查,使代码看起来更混乱。我知道我应该编辑Main,但我不能,因为这是我的研究任务。我只能修改计算:/