- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种更好的方法来使用 Jscience 进行计算,但通用模式很难获得清晰的解决方案。如果定义了单位数量的单价,我需要计算 n 个单位的价格。就像,
Measure<Double, ? extends Quantity> unitQuantity = Measure.valueOf(1.0,
Unit.valueOf("kg"));
Amount<Money> unitPrice = Amount.valueOf(150.0, USD);
Measure<Double, ? extends Quantity> quantity = Measure.valueOf(500.0,
MILLI(Unit.valueOf("kg")));
Amount<Money> amount = unitPrice.times(quantity.to(unitQuantity.getUnit())
.getValue() / unitQuantity.getValue());
对于上面的代码,我收到此错误:
The method to(Unit<capture#7-of ? extends Quantity>) in the type
Measure<Double,capture#7-of ? extends Quantity> is not applicable for
the arguments (Unit<capture#8-of ? extends Quantity>)
我在 Java Tutorials 阅读了有关泛型的内容并尝试了以下方法,但仍然没有明确的解决方案:
Amount<Money> amount = compute(unitPrice,unitQuantity,quantity)
private <T extends Quantity> Amount<Money> compute(Amount<Money> unitPrice,
Measure<Double, T> unitQuantity, Measure<Double, T> quantity) {
return unitPrice.times(quantity.to(unitQuantity.getUnit()).getValue()
/ unitQuantity.getValue());
}
现在收到此错误:
The method compute(Amount<Money>, Measure<Double,T>, Measure<Double,T>)
in the type JscienceEx is not applicable for the arguments (Amount<Money>,
Measure<Double,capture#7-of ? extends Quantity>, Measure<Double,capture#8-of ?
extends Quantity>)
最佳答案
Unit.valueOf("kg")
工厂方法在某些情况下可能很方便。但在这种情况下,它没有保留足够的信息。它仅返回“某些”数量的单位 - 因此 ? extends Quantity
在返回类型中。但你不知道这是否是数量,例如Mass
或Power
。而只要你不知道这一点,你就无法判断是否调用了quantity.to(unitQuantity.getUnit())
有效。
在这种情况下,您可以使用 new BaseUnit<Mass>("kg")
来解决此问题而不是 Unit.valueOf("kg")
:
import static javax.measure.unit.SI.MILLI;
import javax.measure.Measure;
import javax.measure.quantity.Mass;
import javax.measure.unit.BaseUnit;
import org.jscience.economics.money.Currency;
import org.jscience.economics.money.Money;
import org.jscience.physics.amount.Amount;
public class JScienceUnits
{
public static void main(String[] args)
{
BaseUnit<Mass> kg = new BaseUnit<Mass>("kg");
Measure<Double, Mass> unitQuantity = Measure.valueOf(1.0, kg);
Amount<Money> unitPrice = Amount.valueOf(150.0, Currency.USD);
Measure<Double, Mass> quantity = Measure.valueOf(500.0, MILLI(kg));
Amount<Money> amount = unitPrice.times(
quantity.to(unitQuantity.getUnit()).getValue() /
unitQuantity.getValue());
System.out.println(
"Money for "+quantity+
" with unit price "+unitPrice+
" is "+amount);
}
}
关于java - 使用 Jscience 计算 n 个单位的价格(提供单价和数量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918549/
当我以虚构的汇率 1.05 将欧元兑换为美元时,我刚刚遇到了 JScience (4.3.1) 的奇怪行为(这意味着如果我支付 1 欧元): Currency unitMoney1 = Currenc
我想在 JScience 中定义一个新的距离单位.项目网站的“教程”部分直接指向 Javadoc,它虽然相当完整,但对我来说有点过于密集,无法理解我实际上是如何定义我自己的单元的。 你能举个例子吗?
我正在制作一个简单的物理计算器中使用 jscience。我需要计算给定一些齿轮和旋转圆柱体的转动惯量。 我更喜欢用jscience,但是jscience似乎没有转动惯量的测量方法?或者转动惯量是否以其
我们有一个系统,用户可以在其中提供任何单位的数据。数据被存储并可能转换为相同维度的任何其他单位。它基于 JScience api。 我想生成所有受支持单位的列表,以及它们拥有的所有别名。我似乎无法找到
在我正在制作的应用程序中,我需要一些物理计算(功率、力、扭矩等)。我想使用 JScience,因为它在跟踪单位方面似乎非常有用。例如,要分配速度,我会这样做: Amount vel = Amount.
我正在 JScience 库中寻找一种从一种单位类型转换为另一种单位类型的方法。给定每种类型的基本单位之间的因子,我应该能够进行转换。但 JScience 似乎对转换不太友好,只允许相同基本类型的单元
我的 Android 应用程序中有一个用例,我需要保存数量,对其执行计算,并以用户选择的单位(来自预定义列表)显示它。 JScience 完美地满足了这个需求,但由于以下错误,我无法编译 Androi
我正在尝试试用 JScience-physics 5.0-SNAPSHOT。不幸的是,我似乎无法找到进入代码的入口。 JScience网站上的例子都是4.3.1的;使用 Amount 类。从那里可以很
这是我的代码: Real AB = adj[a].get(b); System.out.println("AB " + AB); Real AC = adj[a].get(c); System.out
我尝试使用 JScience 解析 mathml 文档,但没有成功。以下是我的一段代码。 import JSci.io.*; import JSci.mathml.*; . . public
如何使用 JScience 创建涉及 vector 的符号变量/函数?创建浮点变量很容易: Variable varX = Variable.local("x"); 如何对 vector 执行相同的操
当我对 JScience Amount 对象使用 toString() 时,我得到如下结果: (7.5 ± 4.4E-16) mph 这并不糟糕,但我真的希望它输出如下内容: 7.5 miles pe
我正在寻找一种更好的方法来使用 Jscience 进行计算,但通用模式很难获得清晰的解决方案。如果定义了单位数量的单价,我需要计算 n 个单位的价格。就像, Measure unitQuant
有什么直接的方法可以将 bar 转换为 psi(磅每平方英寸)?例如将毫米转换为英寸 //mm to inches Unit mm = SI.MILLIMETER; Unit i
我有一个Vector vec在jscience中。我找不到将其标准化的功能。你能帮我正常化吗vec ? 最佳答案 类(class) org.jscience.mathematics.vector.Fl
我从 here 下载了示例代码用于使用 jscience。 但是当我使用它时,它会给出这样的信息: E/AndroidRuntime(1296): java.lang.NoClassDefFoundE
我在我的 Android 应用程序中使用 Gradle,我想使用 JScience 库依赖项。我以这种方式添加了库: dependencies { compile fileTree(dir:
我是一名优秀的程序员,十分优秀!