ページごとに特定の行を指定し、使用されたページ数を確認する必要がある場合。分割しても2ページも表示されません:
Dim lines As Integer = 68
Dim lines_per_page As Integer = 65
Dim pages_used As Integer
Pages_used = lines_per_page / lines
助けてくれませんか。
あなたはあなたの分裂を逆行しています。合計行を1ページあたりの行数で割る必要があります。条件がこのようにキャンセルされる方法を確認してください。
xページ=(y行/ 1ページ)/(z行)<< yeilds 1 /ページ(間違っています!)
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)
注:このソリューションは、タイプを変更せずに、提供されたパラメーターを利用します。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
これは、Pages_Usedを整数として使用しているためです。VBは結果を丸めます。代わりにdoubleを使用してみてください。
ここで間違っているのは、分割を逆にしていることです。したがって、ページごとに行を分割する必要があります。
Pages_used = lines / lines_per_page
逆ではありません。