gpt4 book ai didi

java - 短到双倍的值(value)

转载 作者:行者123 更新时间:2023-11-30 06:29:27 26 4
gpt4 key购买 nike

我在将 short 值转换为 Java 中的 double 时遇到问题。我将实数表示为 16 位无符号值(Java 中的 short)。当我阅读它们时,我想将它们转换为 double,但是在执行 (double) value 之后,我得到了错误的结果,例如在一种情况下使用System.out.println(value) 我得到 0.0,但结果应该是 0.00034

 double[][] dataD = null;
short[][] dataS = null;
try {
fits = new Fits(path); // here im readinf fits file
switch(bitpix) { // bitpix contains information about size of data
case 16: dataS = ((short[][]) fits.getHDU(0).getKernel()); break;
...
}
} catch (FitsException e) {}
catch (IOException e) {}
for( int i = 0; i < dataS.length; i++ )
for( int j = 0 ; j <dataS[0].length ; j++ ) {
switch(bitpix) {
case 16: dataD[i][j] = 0.0;
if( dataS[i][j] < 0 ) dataD[i][j] = dataS[i][j] + 32768;
else dataD[i][j] = dataS[i][j] ;
break;
}

最佳答案

我假设您在将短数转换为 double 之前将它们相除。不要做

short s = 123;
double d = (double) (s / 100);

改为做

short s = 123;
double d = (double) (s / 100.0);

避免整数除法。

关于java - 短到双倍的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11538028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com