试图建立二进制系统,但我愚蠢

我试图建立一个十进制到二进制Converter(C#)。 我使用Youtube视频来了解二进制系统,但是它只是不想工作。 如果我切换if和else if语句qwe更改为4.5(输入= 18)。

有人可以解释一下吗?

    private void ConvertDecimalToBinaryTextBox_TextChanged(object sender, EventArgs e)
    {
        float qwe = float.Parse(ConvertDecimalToBinaryTextBox.Text);
        string s = "";
        do
        {
            if (qwe % 2 == 1)
            {
                s += "1";
                qwe = (qwe - .5f) / 2;
            } else if (qwe % 2 == 0)
            {
                s += "0";
                qwe = qwe / 2;
            }

        } while (qwe >= 1);
        DecimalToBinaryOutput.Text = s.ToString();
    }