【问题标题】:Why Double not Float为什么 Double 不浮动
【发布时间】:2018-04-26 14:51:38
【问题描述】:

为什么推断的类型是 Double 而不是 Float?

final Array1D<Double> doubles = Array1D.factory(Primitive32Array.FACTORY).makeFilled(10, new Uniform());

或者换个说法,Primitive32Array.FACTORYPrimitive64Array.FACTORY有什么区别?

【问题讨论】:

标签: ojalgo


【解决方案1】:

这是出于历史原因。 ojAlgo 最初不支持浮点数组/矩阵,&lt;Double&gt; 自然总是引用底层的 double[]。

现在 ojAlgo 部分支持 float[],但仅作为节省空间的“原始”数组。 Primitive32Array 内部的所有内容(例如)都是 float 和 float[],但它的 API 仍然是 &lt;Double&gt;

在 ojAlgo 中,&lt;Double&gt; 本质上是“原始”的意思。

考虑全面支持浮点数(用于矩阵和线性代数)。何时/如果发生这种情况,&lt;Double&gt; 可能会被 &lt;Number&gt; 替换以表示任何“原始”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多