0

如果我每页给出了一定的行数,并且必须找出已经使用了多少页。如果我把它分开,我仍然没有得到 2 页:

   Dim lines As Integer = 68
    Dim lines_per_page As Integer = 65
    Dim pages_used As Integer
    Pages_used =  lines_per_page / lines 

你能帮忙吗?

4

4 回答 4

4

你正在倒着做你的划分。您必须将总行数除以每页行数。查看条款如何以这种方式取消:

x pages = (y lines/1 page) / (z lines) << yields 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)
于 2012-07-11T17:35:45.990 回答
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

于 2012-07-11T17:10:11.850 回答
0

那是因为您将 Pages_Used 作为整数。VB 将对结果进行四舍五入。尝试使用双精度。

于 2012-07-11T16:55:22.863 回答
0

这里的问题是你正在扭转分裂。你应该这样划分每页的行数

Pages_used = 行数 / lines_per_page

不是相反。

于 2017-03-26T13:17:44.790 回答