我有一种方法可以解码文件中的某些信息,当我尝试将解码的值除以10时,假设它删除了最后一位数。
private int DecodeInt(byte[] bytes, int start)
{
int r2 = 0;
byte ch1 = bytes[start];
byte ch2 = bytes[start + 1];
int result = ch2 + (ch1 * 256);
if (result > 32767)
{
r2 = 0;
}
else
{
r2 = result;
}
return r2;
}
我知道显示的值应为39.5。
Label_1.Text = (DecodeInt(Rec, 22)).ToString(); // Displays 395
Label_1.Text = (DecodeInt(Rec, 22) / 10).ToString(); // Displays 39
我很困惑为什么它不起作用......我相信这将是简单的调整,但它让我有点生气。
答案 0 :(得分:2)
您将int与int分开,因此结果将仅在int中。你能做的是:
Label_1.Text = (DecodeInt(Rec, 22) / 10.0).ToString();
答案 1 :(得分:0)
我在这里寻找我的解决方案:https://stackoverflow.com/a/661042/2952390
double result = (double)DecodeInt(Rec,20)/(double)10;
当然比我想象的容易得多。