划分解码值,而不是减去/删除最后一位数

时间:2014-02-26 11:01:21

标签: c# winforms visual-studio .net-3.5 decode

我有一种方法可以解码文件中的某些信息,当我尝试将解码的值除以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

我很困惑为什么它不起作用......我相信这将是简单的调整,但它让我有点生气。

2 个答案:

答案 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;

当然比我想象的容易得多。