相关疑难解决方法(0)

在Java中评估数学表达式的方法

在我的一个项目中,我想添加一个功能,例如用户可以在公式中提供

sin (x + pi)/2 + 1
Run Code Online (Sandbox Code Playgroud)

我在我的Java应用程序中使用它

/**
 * The formula provided by the user
 */
private String formula; // = "sin (x + pi)/2 + 1"

/*
 * Evaluates the formula and computes the result by using the
 * given value for x
 */
public double calc(double x) {
    Formula f = new Formula(formula);
    f.setVar("x", x);
    return f.calc();
    // or something similar
}
Run Code Online (Sandbox Code Playgroud)

我如何评估数学表达式?

java math formula

49
推荐指数
3
解决办法
7万
查看次数

任意预设精度小数(几乎与BigDecimal一样)

我希望有一个java类,它将保持一个具有任意预设精度的十进制值.该类BigDecimal看起来是一个很好的候选者作为起点,但我希望能够将小数的大小限制为最终用户决定的任何内容.从字面上讲,最终用户将在基数10中指定一个范围,我将分配足够的字节来表示该范围内的任何数字.

我想要有一个扩展的课程BigDecimal.在这个类中,我将添加模拟预设范围内的小数所需的函数.

我对社区的问题是:是否有任何图书馆已经这样做了?
扩展BigDecimal是否合理?

java performance

6
推荐指数
1
解决办法
351
查看次数

java for-loop问题

我正在制作一个Java程序来计算Simpson的积分规则.这是我的代码.注意count == 4,9,10,11的输出值中的第二列数字.它们不是我需要的数字,它们不遵循这种模式.我需要这些数字是准确的.发生了什么,我该如何解决?

public static void main(String[] args) 
{
   double totalS = 0.0;
   int count = 0;

   for(double i=0; i< 4; i += 0.4 )
   {
          count++;
          totalS += Sfunction(i, count);
          System.out.println(count + " " + i + " " + totalS);
   }
}

public static double Sfunction(double f1, int count)
{
    double value;

    if (f1 == 0.0 || f1 == 4.0)
        value = Math.cos(Math.sqrt(f1));
    else if ((count % 2) == 1)
        value = 2 * Math.cos(Math.sqrt(f1));
    else
        value = …
Run Code Online (Sandbox Code Playgroud)

java for-loop

3
推荐指数
2
解决办法
2313
查看次数

标签 统计

java ×3

for-loop ×1

formula ×1

math ×1

performance ×1