如果我每页都有一定的行,并且必须找到已经使用了多少页。如果我分开它,我仍然不会得到2页:
Dim lines As Integer = 68
Dim lines_per_page As Integer = 65
Dim pages_used As Integer
Pages_used = lines_per_page / lines
你能帮忙吗。
答案 0 :(得分:4)
你正在倒退你的部门。您必须按行数除以总行数。查看条款如何以这种方式取消:
x pages =(y行/ 1页)/(z行)<< yeilds 1 / pages(错误!)
x页=(z行)/(y行/ 1页)=(z行)*(1页/ y行)<<正确!
另请注意,您需要执行双重除法,而不是整数除法,然后将结果值四舍五入,因为必须将部分页面舍入为整页。
Dim lines As Integer = 68
Dim lines_per_page As Double = 65
Dim pages_used As Integer
pages_used = CType(Math.Ceiling(lines / lines_per_page), Integer)
答案 1 :(得分:2)
注意:此解决方案使用您提供的参数,类型无变化。 Roken的解决方案在逻辑上是正确的,但是不会编译,因为pages_used被转换为整数。
使用以下内容:
Dim lines As Integer = 68
Dim lines_per_page As Integer = 65
Dim pages_used As Integer
pages_used = (lines + lines_per_page - 1) \ lines_per_page
结果:pages_used = 2
答案 2 :(得分:0)
那是因为你将Pages_Used作为整数。 VB将对结果进行舍入。请尝试使用double。
答案 3 :(得分:0)
这里有什么问题是你正在扭转分裂。你应该将每行的行划分为
Pages_used = lines / lines_per_page
不是相反。