我想计算omnet中的double值,并且所有内容都以double形式定义,以计算传感器节点的剩余能量。但是它以整数格式计算能量水平。所以我看不到双重价值。它将能量减少1,但应减少0.000538。
例如,如果初始能量为10,我应该看到剩余的10 - 0.000538,但我看到了它。因此我们的结果是不正确的。我该如何解决这个问题?
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);
感谢您的帮助。
答案 0 :(得分:1)
通常,不要强制转换值(通过编写(double)foo
)。这将隐藏可能发生的任何错误:它会强制编译器接受您尝试分配的任何内容 - 无论s是否真的是个好主意。
使用par("foo").doubleValue()
将参数值读取为double。