获取java.lang.double无法强制转换为java.lang.long [英] Getting java.lang.double cannot be cast to java.lang.long

查看:1111
本文介绍了获取java.lang.double无法强制转换为java.lang.long的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

private void RecalculateFreqencies1()

{

int inputDivider = 0;

int outputDivider = 0;

int fbDivider = 0;

double tempFrequency = 0.f;

double nearestFrequency = 0.f;

long targetFrequencyLong =(long) spn_TargetFrequency1.getValue();

double targetFrequency =(double)targetFrequencyLong;



if(targetFrequencyLong == 50000000)

{

tempFrequency =((double)_inputFrequency /(double)20)*(double)800 /(double)32;

nearestFrequency = tempFrequency;

_pllidivEstimate = 20;

_pllodivEstimate1 = 32;

_pllfbEstimate = 800;

_pllodivEstimate2 = 10;

}



int outputspn2 = _pllodivEstimate1 / 3;

if(outputspn2< 1)

outputspn2 = 1;

spnfreq2 =((double)_inputFrequency /(double)_pllidivEstimate)* (double)_pllodivEstimate1 /(double)outputspn2;

spn_TargetFrequency2.setValue(spnfreq2);



}

private void RecalculateFreqencies2()

{

long targetFrequencyLong2 =(long)spn_TargetFrequency2.getValue();

}



我尝试过:



获取java.lang.Double无法转换为java。 lang.Long exceptionthis here

private void RecalculateFreqencies2()

{

long targetFrequencyLong2 =(long)spn_TargetFrequency2.getValue() ; //例外

}

解决方案

参见 Double(Java Platform SE 7) [ ^ ]。


< blockquote>执行RecalculateFreqencies2()注释RecalculateFreqencies1(),未看到异常。 RecalculateFreqencies1()设置spn_TargetFrequency2值。这个值是在RecalculateFreqencies2()中使用
获取的。
long targetFrequencyLong2 =(long)spn_TargetFrequency2.getValue();

这里我得到java.lang.Double不能被强制转换到java.lang.Long异常


private void RecalculateFreqencies1()
{
int inputDivider = 0;
int outputDivider = 0;
int fbDivider = 0;
double tempFrequency = 0.f;
double closestFrequency = 0.f;
long targetFrequencyLong = (long)spn_TargetFrequency1.getValue();
double targetFrequency = (double)targetFrequencyLong;

if(targetFrequencyLong == 50000000)
{
tempFrequency = ( (double)_inputFrequency / (double) 20 ) * (double) 800 / (double) 32;
closestFrequency = tempFrequency;
_pllidivEstimate = 20;
_pllodivEstimate1 = 32;
_pllfbEstimate = 800;
_pllodivEstimate2 = 10;
}

int outputspn2 = _pllodivEstimate1/3;
if (outputspn2<1)
outputspn2 = 1;
spnfreq2 = ( (double)_inputFrequency / (double) _pllidivEstimate ) * (double) _pllodivEstimate1 / (double)outputspn2;
spn_TargetFrequency2.setValue(spnfreq2);

}
private void RecalculateFreqencies2()
{
long targetFrequencyLong2 = (long)spn_TargetFrequency2.getValue();
}

What I have tried:

Getting "java.lang.Double cannot be cast to java.lang.Long exception" here
private void RecalculateFreqencies2()
{
long targetFrequencyLong2 = (long)spn_TargetFrequency2.getValue();//exception
}

解决方案

See Double (Java Platform SE 7 )[^].


on executing RecalculateFreqencies2() commenting RecalculateFreqencies1(), exception not seen. RecalculateFreqencies1() sets "spn_TargetFrequency2" value. This value is fetched in RecalculateFreqencies2() using
long targetFrequencyLong2 = (long)spn_TargetFrequency2.getValue();
Here i am getting "java.lang.Double cannot be cast to java.lang.Long exception


这篇关于获取java.lang.double无法强制转换为java.lang.long的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆