如何以十进制值写入UNITS功率?

时间:2014-01-22 17:04:19

标签: java

我在我的项目中使用Javax.Units包来编写一些formal。我正在尝试编写这行代码:

Unit newton = SI.NEWTON;
Unit newton09 = newton.pow(0.9);//not allowing me to input decimal value 0.9

pow 方法只将 int 作为参数,但我正在寻找float或double作为参数。如何在参数中写入float或double?

2 个答案:

答案 0 :(得分:1)

您可以使用root()pow()方法。一个数字n取为0.9的幂相当于n取得9/10的幂,而这相当于(n的第10个根到9功率)。因此,您只能使用int s:

Unit newton09 = newton.pow(9).root(10);

答案 1 :(得分:1)

我认为你需要退后一步,回想一下取幂的含义,特别是对于小数指数。您正尝试将某些值X提升到某个幂M/N

如果您记得算术类中M/N的含义,它与M * 1/N相同。这很重要,因为这意味着你可以像这样表达你的表达式:

X^M^(1/n)

所以我们有这个等价:

X^(M/N) == X^M^(1/N)

,任何提升到1/N的内容都与获取N根一样,所以你可以通过计算得到一个等价的表达式:

Nroot( X^M )

在该API中,将是:

Unit newton09 = newton.pow(9).root(10);