Double Omnet++;双变量误差

Double Omnet++;双变量误差,double,omnet++,Double,Omnet++,我想在omnet中计算double值,所有内容都在double中定义,以计算传感器节点的剩余能量。但它以整数格式计算能量级别。所以我看不到双重值。它将能量减少1,但应减少0.000538 例如,如果初始能量是10,我应该看到剩余的10-0.000538,但我看到它是9。因此我们的结果是不正确的。我怎样才能解决这个问题 lcnBtrySt = (double)getParentModule()->par("lcnBat_Full") //lcnBtrySt is reached from

我想在omnet中计算double值,所有内容都在double中定义,以计算传感器节点的剩余能量。但它以整数格式计算能量级别。所以我看不到双重值。它将能量减少1,但应减少0.000538

例如,如果初始能量是10,我应该看到剩余的10-0.000538,但我看到它是9。因此我们的结果是不正确的。我怎样才能解决这个问题

lcnBtrySt = (double)getParentModule()->par("lcnBat_Full")

//lcnBtrySt is reached from the network.ned file.

//When I append the .DOUBLE to end of the
(double)getParentModule()->par(“lcnBat_Full”).double

//its energy starts from 67.But actual one is 110160 j.
//I cannot fix the problem.


Rx value = 0.000538 ,hopBits =10.0;

    ev<<"Rx is equal to ",lcnBtrySt=lcnBtrySt-(Rx*hopBits);
//它的能量从67开始,但实际的能量是110160 j。
//我无法解决这个问题。
Rx值=0.000538,hopBits=10.0;

ev一般情况下,不要强制转换返回值(通过写入
(double)foo
)。这将隐藏可能发生的任何错误:它强制编译器接受您试图分配的任何内容—不管s是否是一个好主意


使用
par(“foo”).doubleValue()
将参数的值读取为double。

感谢您的帮助@Christoph Sommer。但它没有显示预期值。我需要看到110160-0.000538=110159.999462。它总是递减1。110159、110158我被卡住了,请帮帮我。线路
Rx值=0.000538,hopBits=10.0看起来很奇怪。你能试着进一步简化你的例子吗?请不要在你的帖子的任何地方添加“紧急”叫喊,尤其是标题。