Scanner in = new Scanner(System.in);
//String s = in.next();
String s1;
String x = in.next();
String s2;
String s3= "3*4.4+pow(sqrt(sin(x)),3)";
String s4;
String s5;
s1 = s3.replace("sin(x)","Math.sin(x)").replace("cos(x)","Math.cos(x)").replace("tan(x)","Math.tan(x)").replace("sqrt","Math.sqrt").replace("pow(","Math.pow(");
s2 = s1.replace("x", x);
System.out.println(s2);
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
s4 = (String) engine.eval(s2);
s5 = String.format("%.2f",s4);
System.out.println(s5);
ここは私のJavaコードです。私はs4
変数で私の表現の答えを取っているし、その後、小数点以下2桁まで修正したいと思います。私の答えはStringデータ型であるため、String.format()メソッドを使用しましたが、動作しません。以前はDecimalFormatオブジェクトを使用していましたが、私の答えはStringになっていたので役に立たなかったです。コードはString.format()メソッドなしで正常に動作します。誰でもこれを修正できますか?Javaで小数点以下2桁の文字列を印刷する方法
この質問は答えているように見えます[ここでprintfを使って](https://stackoverflow.com/a/2538803/382936)。 –