使用c#谢了一个float数组循环,但是数据的值过小导致显示结果全是0.0

bifeng8467 2017-08-11 11:31:21
代码如下
volt = new float[llMemSet];
for (w = 0; w < llMemSet; w++)
{
volt[w] = nData[w]*1000/32786;
}
如果我把最后的32786改成100或者1000这种比较小的数,结果能显示出来,但是写这个32786时,数组的结果就全是0.0,我应该怎么改才能让真实的结果显示出来呢?
...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
白衣如花 2017-08-11
  • 打赏
  • 举报
回复
引用 8 楼 hanjun0612 的回复:
soga。谢谢斑竹
正怒月神 2017-08-11
  • 打赏
  • 举报
回复
引用 6 楼 u012948520 的回复:
我一直不确定到底是 ((float)nData[w])*1000/32786 还是 (float)(nData[w]*1000/32786)
小括号优先级大于运算符。 (float)(nData[w]*1000/32786) 这样先会运算nData[w]*1000/32786,然后转float. (float)nData[w]*1000/32786 这样先将nData[w]转成了float,然后*1000/32786
xuzuning 2017-08-11
  • 打赏
  • 举报
回复
volt[w] = nData[w]*1000/32786F;
白衣如花 2017-08-11
  • 打赏
  • 举报
回复
引用 4 楼 hanjun0612 的回复:
volt[w] = (float)nData[w]*1000/32786;
这个圆括号和乘除的优先级是左右吗? 我一直不确定到底是 ((float)nData[w])*1000/32786 还是 (float)(nData[w]*1000/32786)
正怒月神 2017-08-11
  • 打赏
  • 举报
回复
volt[w] = (float)nData[w]*1000/32786;
白衣如花 2017-08-11
  • 打赏
  • 举报
回复
C#推荐使用double,如果不是特别缺内存的话,建议用double
白衣如花 2017-08-11
  • 打赏
  • 举报
回复
volt[w] = nData[w]*1000/32786.0; 可能是nData[w]这个是int,所以int运算不会产生浮点型 除以32786.0就可以产生浮点型了
bifeng8467 2017-08-11
  • 打赏
  • 举报
回复
是我没个数据字节数的问题吗?应该怎么改呢?

110,557

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧