VB - Divide整数にコンマは含まれていませんか?

これはおそらく簡単なものですが、私は2つの整数を分けようとしているこのExcel vbaマクロを持っています。そこにはカンマが必要ですが、丸数字で終わります。 例えば278/101 = 3です。それは実際には2,75で3ではありません。なぜこれがですか?

マクロは、次のようにとてもシンプルです。

Dim intFull, intLow , intDivided as Integer
intFull = 278
intLow = 101
intDivided = intFull \ intLow
1
マクロを見ることはできますか? :)
追加された 著者 brettdj,

2 答え

Your result variables is an integer

If you work with doubles instead you will get 2.752 etc - which can be rounded using dbDivided = Round(lngFull/lngLow, 2)

[より有意義に更新された変数]

Sub redone()
    Dim lngFull As Long
    Dim lngLow As Long
    Dim dbDivided As Double
    lngFull = 278
    lngLow = 101
    dbDivided = Round(lngFull/lngLow, 2)
End Sub
5
追加された
そしてそれはそれでした!ありがとう!私はこれを本当に推測していたはずです。これはかなり基本的なVisual Basicです。
追加された 著者 Kenny Bones,
Dim intFull整数として、intLow Integer、dblDivided As Double は正しく動作します。例えば、Java( int/intint の結果を生成する)とは異なり、 Integer/Integer はVBAになります。結果が割り当てられる変数のタイプによって異なります。また、 Dim intFull、intLow、intDivided As Double は2つの Variant 変数と1つの Double 変数を提供します。最後に、 int を前に付けた名前の Double 変数は、混乱の原因になります
追加された 著者 barrowc,
@barrowc。命名規則に同意し、それに応じて更新しました.LongはIntegerよりも効率的です。また、実行可能ではあるにもかかわらず、標準的な単一行の寸法スタイルを実行する必要があるバリアントを更新しました。コメントありがとうございます。
追加された 著者 brettdj,

スラッシュを使用していますが、バックスラッシュは使用していませんか? (関連項目: http:// zo-d .com/blog/archives/programming/vba-integer-division-and-mod.html

2
追加された
うーん、私は/と\を試しました。 /を使用すると、値は3になります。\を使用すると、値は2になります。
追加された 著者 Kenny Bones,
上記を参照。主な問題はあなたの可変型でした。副次的な問題は、ヨアヒムが特定したバックスラッシュでした。両方とも私のポストに固定されています
追加された 著者 brettdj,
バックスラッシュの残りの破棄の問題で最初に投稿する場合+1。
追加された 著者 brettdj,