VB - Падзяліць цэлыя лікі не коскай?

Гэта, верагодна, лёгка адзін, але ў мяне ёсць гэты макрас 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 :) Thanx!
дададзена аўтар Kenny Bones, крыніца
<Код> Dim intFull As Integer, intLow As Integer, dblDivided As Double працуе правільна. У адрозненне, напрыклад, Java (дзе Int/INT вырабляе Int вынік) Integer/Цэлае не заўсёды вырабляюць Integer у выніку VBA - гэта залежыць ад тыпу зменнай, вынік прысвойваецца. Акрамя таго, Dim intFull, intLow, intDivided As Double дае нам два Variant зменныя і адзін Double зменную. Нарэшце, Double пераменная з імем прэфіксам Int толькі збіраецца прывесці да блытаніны
дададзена аўтар barrowc, крыніца
@barrowc. Дамовіцеся аб назвах і абнаўляюцца адпаведна, Long з'яўляецца больш эфектыўным, чым Integer. Таксама абнавілі варыянты, у той час як працаздольны з'яўляецца неахайнай, я павінен быў запусціць мой стандартны однострочный стыль абмеры. Дзякуй за каментары.
дададзена аўтар brettdj, крыніца

Вядома, вы выкарыстоўвалі касую рысу, а не зваротны слэш? (Глядзі таксама: Http://ZO-й .com/блог/архівы/праграмаванне/VBA-цэлае з падзелам і-mod.html )

2
дададзена
Хм, я спрабаваў як/і \ у цяперашні час. Калі я выкарыстоўваю /, я атрымліваю значэнне 3. калі я выкарыстоўваю \ я атрымліваю значэнне 2.
дададзена аўтар Kenny Bones, крыніца
глядзі вышэй. Асноўная праблема была пераменны тыпам. Другасныя праблемы была ўжыць зваротны слэш, якія вызначаны Йоахім. Абодва фіксуюцца ў маім паведамленні
дададзена аўтар brettdj, крыніца
+1 для размяшчэння першага па гэтым пытанні скінутых зваротны слэш астатку.
дададзена аўтар brettdj, крыніца