当前位置: 首页 > 面试题库 >

如何在Java中将浮点数组转换为双精度数组?

庞彬
2023-03-14
问题内容

我有一个浮点数组,我想将其转换为Java中的双精度数组。我知道迭代数组并创建一个新数组的明显方法。我希望Java在希望与double
[]一起工作的地方能够平稳地消化float [] …,但不能与此一起工作。进行这种转换的优雅,有效的方法是什么?


问题答案:

基本上 必须进行每个值的转换。两种数组类型之间没有隐式转换,因为在JITting之后用于处理它们的代码将有所不同-
它们具有不同的元素大小,而float则需要转换,而double则不需要。将此与引用类型的数组协方差进行比较,在引用类型中,读取数据时无需进行转换(例如,字符串引用作为对象引用的位模式相同),并且所有引用类型的元素大小均相同。

简而言之, 有些东西
必须循环执行转换。我不知道有任何内置方法可以做到这一点。我确定它们存在于第三方库中的某个地方,但是除非您碰巧已经在使用这些库之一,否则我只会编写您自己的方法。为了方便起见,下面是一个示例实现:

public static double[] convertFloatsToDoubles(float[] input)
{
    if (input == null)
    {
        return null; // Or throw an exception - your choice
    }
    double[] output = new double[input.length];
    for (int i = 0; i < input.length; i++)
    {
        output[i] = input[i];
    }
    return output;
}


 类似资料:
  • 问题内容: 我正在尝试对.3gpp音频文件执行快速傅立叶变换。该文件包含来自电话麦克风的44100kHz的5秒钟小录音。 出于显而易见的原因,我可以找到的每个Java FFT算法都只接受double [],float []或Complex []输入,但是我以字节数组的形式读取音频文件,因此我有点困惑我从这里去哪里。我唯一能找到的是上一个问题的答案: Android音频FFT使用音频记录检索特定频率

  • 问题内容: 我有一个字符串数组为: 所有的字符串值都是数字。数据应转换为。 问题 Java是否有单行解决方案来实现这一目标,或者我们需要循环并将每个值转换为Double? 问题答案: 创建一个使用循环实现该方法的方法,然后调用您的方法,您将获得单行解决方案。 Java API中没有内置方法可以做到这一点。

  • 我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。

  • 我想有一个浮子阵列(双打) 然后我有一个返回最大值的函数 我在将基元数据类型转换为集合时遇到问题。我尝试将其转换为双列表,尝试将myArr转换为char / String来检查一些事情,但显然没有任何效果。 我一直看到原始数据类型的编译错误。我也尝试了< code>Double,但是没有成功。 我怎么可能将数组转换为集合

  • 问题内容: 为了将字节数组转换为双精度型,我发现了这一点: 但是我找不到将双精度型转换为字节数组的任何东西。 问题答案: 甚至更简单

  • 问题内容: 我正在为一个学校项目创建一个RPN计算器。我在使用模运算符时遇到了麻烦。由于我们使用的是double数据类型,因此模数不适用于浮点数。例如,0.5%0.3应该返回0.2,但是我得到除以零的异常。 该指令说要使用fmod()。我到处都在寻找fmod(),包括javadocs,但找不到。我开始认为这是我必须创建的方法? 编辑:嗯,奇怪。我只是再次插入这些数字,它似乎工作正常……但以防万一。