• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Vimscript 数字

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

现在是时候开始深入讨论你能用到的变量类型。首先从数值类型开始吧。

Vimscript有两种数值类型:Number和Float。一个Number是32位带符号整数。一个Float是浮点数。

数字(Number)形式

你可以通过一些不同的方式设置Number的格式。执行下面的命令:

:echom 100

没什么好惊讶的 -- Vim显示100。现在执行下面的命令:

:echom 0xff

这次Vim显示255。你可以加0x0X前缀来指定16进制的数字。现在执行下面的命令:

:echom 010

你也可以加0前缀来使用八进制。不过由于容易混淆,用的时候要保持头脑清醒。尝试执行下面的命令:

:echom 017
:echom 019

第一个命令中,Vim将打印出15,因为17在八进制中等于十进制的15。 在第二个命令中,Vim把数字的进制当作十进制,即使它以0开头,因为它不可能是一个八进制数字。

因为Vim会一声不吭地处理掉这样的错误,我建议尽量避免使用八进制数字。

浮点数(Float)格式

Float也可以用许多方式进行定制。执行下面的命令:

:echo 100.1

注意这里我们使用了echo而不是更常用的echom。待会我会解释为什么这样做(译注:当然你现在可以试试看)。

Vim如愿输出了100.1。你也可以指定指数形式。执行下面命令:

:echo 5.45e+3

Vim输出5450.0。也可以用负的指数。执行下面命令:

:echo 15.45e-2

Vim输出0.1545。在10的幂前面的+-是可选的。如果没有,就默认为正数。执行下面的命令:

:echo 15.3e9

Vim将输出等价的1.53e10。小数点和小数点后面的数字是_必须要有_的。执行下面命令并看它为何出错:

:echo 5e10

强制转换

当你在运算,比较或其他操作中混合使用Number和Float类型,Vim将把Number转换成Float, 以Float格式作为结果。执行下面命令:

:echo 2 * 2.0

Vim输出4.0

除法

在两个Number之间的除法中,余数会被丢弃。执行下面命令:

:echo 3 / 2

Vim输出1。如果你希望Vim使用浮点数除法,至少有一个数字必须是Float, 这样剩下的数字也会被转换成浮点数。执行下面命令:

:echo 3 / 2.0

Vim输出1.53被强制转换成一个浮点数,然后运行了普通的浮点数除法。

练习

阅读:help Float。什么情况下在Vimscript中不能用浮点数?

阅读:help floating-point-precision。这意味着你在写一个处理浮点数的Vim插件时需要注意什么?


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Vimscript 字符串发布时间:2022-02-03
下一篇:
Vimscript 函数参数发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap