我似乎在这里遇到了一些数学问题。
基本上我想要做的是有两个组合框填充整个表单。当该表单加载时,我想获取两个不同的数字并将它们转换为表单高度的百分比,并相应地调整组框的高度。我虽然这会奏效:
Debug.WriteLine(((((programdirs.Length * 100) / totaldirs) * 100) / this.Height) * 100);
然而,它总是最终打印0.它是否有可能是小数点四舍五入,因为我正在执行类似整数的运算?我该怎么做才能让编译器将计算保留在浮点数中,直到我想在结束时将其四舍五入为止?
答案 0 :(得分:1)
没关系,我回答了我自己的问题:P
当我认为在我的计算中使用类似整数的数字会导致它切断小数时,我正走在正确的道路上。输入任何静态数字,对我来说就像100,导致结果总是一个整数,无论可能是什么。所以,最后,这就是我解决问题的方法:
Debug.WriteLine(((((programdirs.Length * (float)100) / totaldirs) * (float)100) / this.Height) * (float)100);
现在我需要做的就是围绕它。
答案 1 :(得分:0)
另一种选择可能是改变操作的顺序,只要你小心避免溢出就应该有效:
Debug.WriteLine(programdirs.Length * 100 * 100 * 100 / totaldirs / this.Height);
你可以移动任何一个分区并组合一个或多个100个值(即用10000替换100 * 100)。