社区
VB基础类
帖子详情
一个关于">"和"<"的有趣问题
yokel
2004-08-04 11:16:32
i="1"
j=1
msgbox j=i '返回False,比较时进行了类型转换
是不是将i的值转成相应ascii码再比较呢,于是
i="1"
j=100000
msgbox j<i '还是返回False!!!!若msgbox i>j,则返回true
所以根本不是将i的值转成相应ascii码再比较,到底怎么比较的呢?
...全文
316
18
打赏
收藏
一个关于">"和"<"的有趣问题
i="1" j=1 msgbox j=i '返回False,比较时进行了类型转换 是不是将i的值转成相应ascii码再比较呢,于是 i="1" j=100000 msgbox jj,则返回true 所以根本不是将i的值转成相应ascii码再比较,到底怎么比较的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
warlord
2004-08-10
打赏
举报
回复
3.
i="3"
j=4
msgbox j>i '结果 false;
4.
i = "3"
j = "4"
MsgBox j>i '结果 true
asc("3")=51
asc(3)=51
warlord
2004-08-10
打赏
举报
回复
我认为是这样,当字符和数字运算时,VB会把数字型的字符自动转为数字:
1.
i="3"
j=4
msgbox j+i '结果=7
2.
i="3"
j="4"
msgbox j+i '结果=43
落伍者
2004-08-06
打赏
举报
回复
看看这个,第一次发表,写的不好http://blog.csdn.net/ljc_zy/archive/2004/08/06/67488.aspx
落伍者
2004-08-06
打赏
举报
回复
终于给 楼主找到一个正确答案原来在<运算符有个规定
“一个 Variant 表达式是数值而另一个是字符串 数值表达式小于字符串表达式。 ”
见Msdn
比较运算符
用来比较表达式。
语法
result = expression1 comparisonoperator expression2
result = object1 Is object2
result = string Like pattern
比较运算符具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression 必需的;任何表达式。
comparisonoperator 必需的;任何比较运算符。
object 必需的;任何对象名称。
string 必需的;任何字符串表达式。
pattern 必需的;任何字符串表达式或字符的范围。
说明
下列表格中有一系列比较运算符以及判定 result 是 True、False 还是 Null 的条件:
运算符 True if False if Null if
<(小于) expression1 < expression2 expression1 >= expression2 expression1 or expression2 = Null
<=(小于或等于) expression1 <= expression2 expression1 > expression2 expression1 or expression2 = Null
>(大于) expression1 > expression2 expression1 <= expression2 expression1 or expression2 = Null
>=(大于或等于) expression1 >= expression2 expression1 < expression2 expression1 or expression2 = Null
=(等于) expression1 = expression2 expression1 <> expression2 expression1 or expression2 = Null
<>(不等于) expression1 <> expression2 expression1 = expression2 expression1 or expression2 = Null
注意 Is 和 Like 运算符有特定的比较功能,它们不同於表格中的运算符。
在比较两个表达式的时候可能难以确定将要比较的表达式是数字还是字符串。下列表格将说明如何比较表达式,或说明当其中一个表达式不是 Variant 时,如何获得比较的结果。
如果 则
两个表达式都是数值数据类型 (Byte、Boolean、Integer、Long、Single、Double、Date、Currency 或Decimal) 进行数值比较。
两个表达式都是 String 进行字符串比较
一个表达式是数值数据类型而另一个是数字 Variant、或可以为一数字 进行数值比较。
一个表达式是数值数据类型而另一个是不能转换成数字的字符串 Variant 产生类型不匹配的错误。
一个表达式是 String,而另一个是除了 Null 以外的任何 Variant 进行字符串比较。
一个表达式是 Empty 而另一个是数值数据类型 进行数值比较,使用 0 作为 Empty 表达式。
一个表达式是 Empty 而另一个是 String 进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。
如果 expression1 和 expression2 都是 Variant 表达式, 则它们的基本类型决定了比较方式。下列表格说明如何比较表达式,或指出通过比较得到的结果,此结果取决于 Variant 的基本类型:
如果 则
两个 Variant 表达式都是数值 进行数值比较。
两个 Variant 表达式都是字符串 进行字符串比较。
一个 Variant 表达式是数值而另一个是字符串 数值表达式小于字符串表达式。
一个 Variant 表达式是 Empty 而另一个是数值 进行数值比较,使用 0 作为 Empty 表达式。
一个 Variant 表达式是 Empty 而另一个是字符串 进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。
两个 Variant 表达式都是 Empty 表达式相等。
当一个 Single 与一个 Double 作比较时,Double 会进行舍入处理而与此 Single 有相同的精确度。
如果一个 Currency 与一个 Single 或 Double 进行比较,则 Single 或 Double 转换成一个 Currency。与此相似,当一个 Decimal 要与一个 Single 或 Double 进行比较时,Single 或 Double 会转换成一个 Decimal。对于 Currency,任何小于 .0001 的小数将被舍弃,对于 Decimal,任何小于 1E-28 的小数将被舍弃,或者可能产生溢出错误。舍弃这样的小数部分会使原来不相等的两个数值经过比较后相等。
vbman2003
2004-08-06
打赏
举报
回复
Dim i, j
i = "a"
j = 9999999
MsgBox i > j
返回的也是 True
flyingscv
2004-08-06
打赏
举报
回复
还没大侠现身啊,再顶一下
liujingxiong
2004-08-06
打赏
举报
回复
不好意思,看错了。
lovebeethoven
2004-08-06
打赏
举报
回复
Dim aa
Dim bb
aa = "1"
bb = 1000000
MsgBox aa > bb
我试的结果是 真
yokel
2004-08-06
打赏
举报
回复
To liujingxiong(北极熊)
兄弟搞错了吧,两个都是1呀,下面代码返回True
i = "2"
j = 3000000
MsgBox j < i
liujingxiong
2004-08-06
打赏
举报
回复
如果j不指明类型,那么和String的i来比较的时候也会转换为String,
因为asc(i)=asc("l")=108,asc(j)=asc("1")=49,所以j<i
yokel
2004-08-06
打赏
举报
回复
to csdnchenxu(天堂剑)
Dim i As String
Dim j As Long
i = "1"
j = 1000000
MsgBox j < i '当然是False
但不指明类型
i = "1"
j = 1000000
MsgBox j < i '返回true
我指的情况当然是不指明数据类型的情况下呀,这是为什么,谁能解释一下
csdnchenxu
2004-08-04
打赏
举报
回复
楼主是不是自己看错了啊
我的机器上是正确的啊
测试代码:
Private Sub Form_Load()
Dim i As String
Dim j As Long
i = "1"
j = 1000000
MsgBox j < i
End Sub
j<i时是false
j>i时是ture
flyingscv
2004-08-04
打赏
举报
回复
奇怪
helanshan
2004-08-04
打赏
举报
回复
定义成Long型也是返回False。除非定义成String型,两个比较相等。
starsoulxp
2004-08-04
打赏
举报
回复
应该定义成Long型就返回True了
bluesky23
2004-08-04
打赏
举报
回复
你定义j是什么类型的?
如果是integer类型的,它最大只能表示32768
定义成Long型试试。
yokel
2004-08-04
打赏
举报
回复
写错了,后一段是
i="1"
j=100000
msgbox j>i '还是返回False!!!!若msgbox j<i,则返回true
所以根本不是将i的值转成相应ascii码再比较,到底怎么比较的呢?
vbman2003
2004-08-04
打赏
举报
回复
只要i是字符串,i>j都返回true
FormCreate 低代码表单设计器
好用的Vue低代码可视化 AI 表单设计器,可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率。支持PC端和移动端,目前在政务系统、OA系统、ERP系统、电商系统、流程管理等系统中已稳定应用。
QWebEngineView features include link clicking, back navigation, and message response handling
代码下载链接: https://pan.quark.cn/s/22cf0950b4f1 在QT框架中,`QWebEngineView`被视为
一个
关键组件,其主要功能是展示网络页面内容,并且该组件采用了Google的Chromium引擎作为其运行基础。本文将全面阐述如何运用`QWebEngineView`来实现链接的交互、浏览历史的回退与前进操作,以及如何对网页中的消息进行响应,并且将探讨其可能引发的内存管理挑战。 1. **构建QWebEngineView** 初始化
一个
`QWebEngineView`实例的过程十分便捷,通常在应用程序的主窗口或对话框的构造函数中进行。例如,在`main.cpp`文件中,可以将`QWebEngineView`集成到主应用程序窗口中: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QWebEngineView *webView = new QWebEngineView(this); setCentralWidget(webView); } ``` 2. **载入网页内容** 通过`QWebEngineView`提供的`load()`方法,可以加载指定的URL地址或本地HTML文档: ```cpp webView->load(QUrl("http://www.example.com")); ``` 3. **交互链接点击事件** 若要捕捉并处理用户在网页上对链接的点击行为,可以配置`QWebEngineView`的`linkClicked`信号,并将其连接至自定义的槽函数: ```cpp connect(webView, &QWebEng...
磁环管成型机.rar
磁环管成型机.rar
Htmx-Fragment-Contract-Check-v1.0-原创源码与文档.zip
原创本地工程工具合集,每个资源均包含独立源码、README、MIT License、原创与授权声明、3项自动化测试、可复现合成示例、离线 JSON、HTML、SVG 报告及 1080×720 真实运行截图。Node.js 18+ 可直接运行,适合开发者进行工程预检、数据校验和证据留档;不包含第三方项目源码、模型权重、官方素材或账号数据。
download.txt内容
源码链接: https://pan.quark.cn/s/a4b39357ea24 2019年发布的vue.js教学视频涵盖了vue2.5版本的实际操作项目源代码,并提供了vue app开发课程的源代码,属于前端开发领域。 此外,还有最新整理的vue.js视频教程集合,包含百套教程供学习使用。 还有前端实战项目专注于vuejs2.0版本,以及针对移动端APP开发的vue.js视频教程,并且搭配了React Native基础教程和电商领域的实战项目。
VB基础类
7,788
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章