vb.net做算术运算 vbnet function

VB.net的开方运算VB的运算顺序是:先乘除、后加减,有括号的先算括号内,有负号的先算负号 。
请你比较一下这个运算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
这样就会发现,你的代码中括号的位置错了 。
正确的应该是: Math.Sqrt((n + 1) / n - 1)
VB.net 算术运算导致溢出题主这个FunctionFindWindow(一堆参数)AsLong,返回值是个Long , 而下面wd=FindWindow(),wd却是个Integer类型的,当然会溢出 。楼上说都改成Long确实可以,不过题主的API声明是从VB里拷贝过来的吧?VB里的Long到.NET中就是Int32了,所以应该把上面FindWindow的返回类型由Long改为Int32(或者Integer)才是正解 。
VB.NET怎么位运算?注意只能对整型执行按位运算 。浮点值必须转换为整型后 , 才能执行按位运算 。按位运算采用二进制(以 2 为基)形式计算两个整数值 。它们比较对应位置上的位,然后基于比较的结果赋值 。下面的示例演示了 And 运算符 。复制Dim x As Integerx = 3 And 5前面的示例将 x 的值设置为 1 。发生这种情况的原因如下:这些值以二进制形式处理:二进制格式的 3 为 011二进制格式的 5 为 101And 运算符比较这些二进制表示方式,一次比较一个二进制位置(位) 。如果给定位置的两个位都为 1,则将 1 放在结果中的该位置 。如果任何一个位是 0,则将 0 放在结果中的该位置 。在前面的示例中 , 按如下所示计算结果:011(二进制格式的 3)101(二进制格式的 5)001(二进制格式的计算结果)计算结果以十进制形式处理 。值 001 是 1 的二进制表示形式 , 因此 x = 1 。除了在任何一个比较位是 1 或两个比较位都是 1 的情况下将 1 赋予结果位以外,按位 Or 运算与此类似 。Xor 在比较的位正好只有一个是 1(而不是两者都是 1)时将 1 赋给结果位 。Not 采用单个操作数并反转所有位(包括符号位),然后将该值赋予结果 。这意味着,对于有符号正数,Not 始终返回负值,而对于负数,Not 始终返回正值或零 。AndAlso 和OrElse 运算符不支持按位运算 。追问: 好复杂啊...还是不会,还有整数怎么转换为二进制数? 回答: 为什么一定要用位运算呢,你那个乘法只能通过左移操作符“”来进行,而左移一次代表乘以2,要是乘以一个小数 , 就必须先化成2的n次方,不够再用加减法调整 , 很麻烦啊 , 没必要用位运算啊 。。。追问: 因为我要进行大量的运算,但速度要快,所有用位运算...我也不想啊.. 回答: 那就不该用VB ?。?c/c++在执行效率上是没话说的 。追问: 问题就是不会嘛... 回答: 那你上csdn上发帖效果应该不错 追问: CSDN发了,我发在高性能运算,没人... 回答: 耐心一些,或者你应该发到VB.NET论坛那里 。。。追问: 额..只能这样了... 提问者 的感言: 太复杂了..算了 2010-11-08
vb运算符在运算式的顺序是什么?先乘除后加减,从右到左运算 。
VB中运算符的计算优先级顺序如下:算术运算符和串联运算符求幂(^)一元标识和非(+、–)乘法和浮点除法(*、/)整数除法(\)取模(Mod)加法和减法(+、–),字符串连接(+)字符串连接()算术移位()比较运算符 。
扩展资料
vb.net 特性:
1、vb.net 完全集成到 Visual Studio 集成开发环境中 , 在这种集成开发环境与 VB 在若干方面有差异 。主要体现在窗体的布局以及菜单等方面都有所不同 。
2、vb.net 项目与 VB 不同 。它使用基于文件夹的模型,所有项目均放置在项目文件夹层次结构中 。

推荐阅读