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

あなたはあなたの分裂を逆行しています。合計行を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)
于 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は結果を丸めます。代わりにdoubleを使用してみてください。

于 2012-07-11T16:55:22.863 に答える
0

ここで間違っているのは、分割を逆にしていることです。したがって、ページごとに行を分割する必要があります。

Pages_used = lines / lines_per_page

逆ではありません。

于 2017-03-26T13:17:44.790 に答える