今天我们要详细讨论格式化写入字符串函数的多种用法,格式化写入字符串数最为关键的是“格式字符串”的问题。对于通常的“格式字符串”,函数提供了配置对话框。调用对话框的方法如下图所示:

对于一般的应用,使用“编辑格式化字符串”对话框就足够了,但是对话框中包含的格式化字符串只是其中的一部分,要想自如使用该函数,必须了解格式化字符串的语法。
下面我将分类详细介绍各种格式化字符串,最常用的格式化字符串莫过于整型数了。
一、整数类型转换为字符串
我们知道整型数有多种数制表示形式,转化为字符串后,也同样存在数制的问题。
1、整型数转换为10进制字符串。
整型数转换为10进制字符串的格式化字符串为:%d

2、整型数转换为16进制字符串。
整型数转换为16进制字符串的格式化字符串为%x.

3、整型数转换为8进制数
整型数转换为8进制字符串的格式化字符串为%o

4、整型数转换为2进制字符串
整型数转换为2进制字符串的格式化字符串为%b。

二、字符串的左右调整与填充
数值转换为字符串时,默认情况下转换位数的多少是自动适应的。从上面几个程序框图上可以看出显示的字符串长度(宽度)各不相同,大多情况下,都需要规定统一的长度。
比如我们转换的是一个寄存器当前的二进制值,我们知道寄存器可能是8位、16位、32位、64位等等,对于16位寄存器,转换为16进制后字符串为2个字符,16位寄存器转换成2进制则是16个字符,因此确定转换后的字符串长度是很重要。
整数转换为字符串确定字符串长度(宽度)的格式化字符串为%4x、%32b等等。百分号后的数字表示宽度。

上图中的确显示出了我们确定的位数,不过存在问题,应该出现0的位置出现的是空格。空格是LABVIEW默认填充字符,LABVIEW也支持填充0,这才是我们需要的。
格式化字符串%032b、%04x中,0表示左侧填充0,无0表示左侧填充空格。

通常情况下,我们一般都会选择在左侧进行调整,填充空格或者无效0。LABVIEW也允许我们在右侧进行调整,也就是左对齐,但是只能默认填充空格,不允许添加0。这是非常合理的,在右侧添加0并非是无效的,它会改变我们要显示的值,会导致错误的结果,因此自然不会允许。
格式化字符串%-10d中“-”表示进行右侧调整,填充空格。

三、浮点数转换为字符串
浮点数转换为字符串的格式化字符串与整数转换为字符串完全不同。
1、不指定格式字符串时,浮点数转换为字符串默认的格式符为%f,%f以小数形式表示浮点数。
格式化字符串%f表示浮点数转换为字符串,默认精度(小数点后的位数)为6。

2、确定小数点后的位数(精度)
格式化字符串%.3f中,小数点后的3表示3位精度,即小数点后保留3位。

从上图可以看出,浮点数转换为字符串时,根据指定精度,进行了四舍五入操作。
3、设定精度为0,浮点数转换为整型字符串,不显示小数点。
这是浮点数转换为字符串的一种特殊用法。

4、设定浮点数转换为字符串的宽度
浮点数转换为字符串的宽度表示的是整个字符串表示的总位数,包括小数点。如果位数不足,则用空格填充。如果设定的宽度不足,LABVIEW保证精度,即小数点后的位数,增加整数部分位数,自动调整。
格式字符串%10.2f中,10表示数据宽度为10,则整数部分为7位、小数点1位、小数点后2位。

5、左侧调整填充0
与整型数转换为字符串一样,当位数不足时,左侧默认填充空格,也可以填充0.
格式化字符串%010.2f表示宽度为10,不足时左侧填充0.

6、去除尾部无效0
浮点数转换为字符串时,由于精度问题,经常会出现字符串尾部有一串无效的0。虽然可以通过设定精度的方法控制小数点的位数,但是会造成四舍五入的问题。
格式化字符串“%#”用来去除尾部无效0.

7、浮点数转换为科学计数法表示的浮点数。
利用小数形式表示浮点数是最为常见的,对于数学计算等应用,利用科学计数法表示浮点数也是非常常见的。
格式化字符串%e表示使用科学计数法表示浮点数。

8、LABVIEW自动选择小数方式还是科学计数法方式。
格式化字符串%g表示LABVIEW自动选择浮点数表示形式。
根据数字的指数,LabVIEW使用f或e。如指数大于–4或小于指定的精度,LabVIEW使用f。如指数小于–4或大于指定的精度,LabVIEW使用e。

9、利用SI符号表示浮点数
利用SI符号表示浮点数在其它编程语言中很少能看到,目前SI符号在日常生活中也经常能见到了,比如我们的USB硬盘是多少M的、多少G的、多少T的等等,这些就是SI符号表示的数。
格式化字符串%p表示用SI符号表示浮点数

10、显示数的符号
上面的例子中,无论是整型数还是浮点数,我们使用的都是正数,转换后的字符串不显示符号。如果使用的是负数,那么在转换后的字符串中会自动显示负号。
个别情况下,我们需要转换后的字符串必须显示符号,比如正数必须显示“+”,可以使用下面的格式字符串。
使用格式化字符串%+在正数字符串前显示+号。

“+”格式符对于负数将直接显示,结果不正确,因此使用时必须确保输入数值为正数。
四、布尔和枚举类型转换为字符串
布尔数据类型占用1个字节,非零表示TRUE,0表示FALSE,因此在字符串中可以用多种方式表示布尔,比如真假、开关、ONOFF等等。LABVIEW默认以字符串TRUE表示布尔真,以FALSE表示布尔假。
通常我们都是通过选择函数把布尔量转换为字符串形式,如下图所示:

其实用格式化写入函数也是可以实现转换的,但是由于帮助文件中没有提到,因此可能很多人都不清楚。

布尔量也可以直接转换为数值格式表示的字符串,即0或者1表示的字符串。

枚举是用字符串表示的整型量,利用格式化写入字符串函数可以直接把枚举转换为字符串。利用不同的格式化字符串,枚举转换后的字符串可以是数值形式的字符串,也可以是枚举的项名。

除了数值转换为字符串之外,利用格式化写入字符串函数,还可以转换时间类型参数,其中的格式化说明符非常复杂,

LABVIEW格式化字符串相关推荐

  1. 使用C++ ostringstream来格式化字符串输出

    在Linux C中,我们通常使用snprintf来格式化字符串输出,但是有一个问题,就是可能会频繁申请大的缓冲区,并且无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内 ...

  2. 零基础入门学习Python(14)-格式化字符串

    什么是格式化字符串 格式化字符串就是按照统一的规格去输出一个字符串,如果规格不统一,就很可能造成误会 format()方法 接受位置参数和关键字参数两种参数 二者均传递到一个replacement的字 ...

  3. WPF中Binding使用StringFormat格式化字符串方法

    原文:WPF中Binding使用StringFormat格式化字符串方法 货币格式 <TextBlock Text="{Binding Price, StringFormat={}{0 ...

  4. python 为什么用%格式化_Python中应该使用%还是format来格式化字符串?

    原标题:Python中应该使用%还是format来格式化字符串? Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字 ...

  5. Linux下的格式化字符串漏洞利用姿势

    [转]http://www.cnblogs.com/Ox9A82/p/5429099.html linux最早的漏洞防护机制nx-stack刚刚出现后就有人想出了突破方法.那就是只有栈是不可执行,而除 ...

  6. python转化为字符串格式_Python格式化字符串~转

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  7. 变量与字符串的连接 - format、格式化字符串

    变量与字符串的连接 先当以如下三个变量: name='wwb' age='17' job='study' 方法一:利用+号进行连接 >>>info1='''Welcome to '' ...

  8. 淘气的页数 - 格式化字符串

    2019独角兽企业重金招聘Python工程师标准>>> 格式化字符串 [toc] 淘气的页数 大牛:"小鸟,发什么呆啊?" 小鸟:"牛哥,我这里要写一个 ...

  9. c语言printf相关函数 格式化字符串攻击 简介

    目录 一.类printf函数簇实现原理 二.格式化字符串攻击原理 三.一个实际的例子 一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型 ...

最新文章

  1. 开关电源怎么测试文波_示波器测试开关电源纹波的方法
  2. 进程线程001 进程线程结构体和KPCR
  3. 【SICP练习】66 练习2.37
  4. ubuntu如何进入超级权限模式,退出超级权限模式,sudo su——root权限
  5. Linux下将mysql数据导入与导出
  6. 大数据之统计学基础(一)
  7. 漫步数学分析十五——连续
  8. 安卓应用安全指南 翻译完成
  9. 2018四川高考文科21题
  10. Hibernate Session和Jpa EntityManager
  11. 想要组装一台 RISC-V PC?试试这个 RISC-V 开发板
  12. XLN Audio Addictive Trigger for Mac(智能鼓音替换工具)
  13. [HDOJ]1001. Sum Problem
  14. [2018.07.26 T2] 背包问题
  15. excel锁定单元格不能修改_锁定单元格不被任意修改和删除
  16. php errorcode,errorCode.php
  17. php用redis实现队列,PHP使用Redis实现队列
  18. 安装office 错误代码:30068-39
  19. java delete()_Java File delete()用法及代码示例
  20. 2020牛客暑期多校训练营(第九场) The Escape Plan of Groundhog

热门文章

  1. 树莓派系统的安装【超详细、超简单】
  2. “逆袭”博士 3 年发 2 篇 Nature 引热议:二本本科毕业,此前研究刷新世界纪录
  3. 可以对大文件排序的排序算法
  4. 用程序自动登陆58同城网的时候遇到的一些参数处理
  5. 基于java校园闲置物(二手物品)交易系统zd
  6. javascript基础——window对象(screen、history、location、navigator、window对象常用方法、window对象常用事件)
  7. 蓝牙耳机哪个音质好?1000左右音质最好的耳机
  8. APP数据分析,到底是在分析什么?
  9. js仿萤石云的视频回放插件拖动效果-时间标尺timeRuler
  10. linux更新依赖文件夹,更新了个依赖程序,结果悲剧了,连ls命令都不能用,大神帮帮忙!...