-
-
Plain 数据小白Lv1
发表于2021-2-3 09:37
悬赏1
已解决

Plain 发表于 2021-2-3 11:08
还是不可以,可能是不能用SQL里的trunc函数展示
我的意思是去掉原来的trunc函数,改成在显示表达式中用上面的表达式像这样原来是三位数

我在显式表达式中写format('%.2f',self.value)+'%'

最后计算后就是这样的

更多format函数说明看这个
5. FORMAT
定义:FORMAT(C,N)
将一数字格式化为指定格式后输出
参数:
C:需要格式化的字符串的格式,完整的格式为"%0:,6.3f",各部分说明见示例。
N:要格式化为指定格式的数值
示例:
将一数字格式化为指定格式,返回值为字符串或数值
format('%0:,6.3f',1245.5634)=1245.563 将浮点数num转换为字符串,并指定小数点后位数
详细说明:
format函数格式化数字输出的操作符由6部分组成:
1、%:是起始控制符,表示从此处开始的字符串为格式化控制参数
2、0::表示控制格式化第几个数,此处"0:"表示控制第一个数,例如"5:"表示控制第5个数。此操作符也可以不写,系统将采用默认模式,默认的是从左往右顺序格式化
3、,:匹配","和",",表示需要控制格式化输出中显示千分符,如果不写","和","则表示不显示千分符
4、6:表示需要确保输出的位数为6位,位数不足前面以0补足(该控制一般应只对整数使用)。如对于数字1则会输出为000001(特别的,对于小数,则表示控制整个数的位数,最好不要在控制小数时使用此操作符)
5、.3: 表示控制小数位输出的个数,如.3表示显示3位小数,对于太大的数,小数位尽量不要控制
6、f': 匹配字符,该字符为类型转换字符,目前支持"d"(表示整数)"f"(表示小数)"s"(表示字符串),使用此操作符表示将输出数转换为指定类型输出。
例如:
函数 输出 说明
format('%.3f',1.0)1.000 控制小数位数
format('%3d',1) 0001 整数位不足补0
format('%,f',1111111111111.1111) 1,111,111,111,111.111 显示千分符
format('%d',12.5) 13 小数转换为整数(四舍五入)
format('%0:3d %1:.2f',12.5,10.4)0013 10.40 多数字控制(从0开始,"0:"表示控制第一个数字)
format('%5.3f',1.0) 01.000 最好不要控制小数位数的同时控制总的位数
format('%.3f',123234234234325345.5634)123234234234325344.000 太大数时,小数可能不准
10个回答
xxxl 发表于 2021-2-3 10:26
原来的数据是2.36,然后需要加上百分符号改成2.36%这样吗
对的,只是原来的数据是0.364545,我截取出0.36,在加上%,显示应该是0.36%,结果这边显示 .36% ,小数点前0不见了
本帖最后由 xxxl 于 2021-2-3 11:03 编辑
Plain 发表于 2021-2-3 10:29
对的,只是原来的数据是0.364545,我截取出0.36,在加上%,显示应该是0.36%,结果这边显示 .36% ,小数点 ...
在显示表达式中写left(self.txt,4)+'%'这样试试或者用format函数像这样写format('%.2f',self.value)
xxxl 发表于 2021-2-3 11:01
在显示表达式中写left(self.txt,4)+'%'这样试试或者用format函数像这样写format('%.2f',self. ...

Plain 发表于 2021-2-3 11:08
还是不可以,可能是不能用SQL里的trunc函数展示
我的意思是去掉原来的trunc函数,改成在显示表达式中用上面的表达式像这样原来是三位数

我在显式表达式中写format('%.2f',self.value)+'%'

最后计算后就是这样的

更多format函数说明看这个
5. FORMAT
定义:FORMAT(C,N)
将一数字格式化为指定格式后输出
参数:
C:需要格式化的字符串的格式,完整的格式为"%0:,6.3f",各部分说明见示例。
N:要格式化为指定格式的数值
示例:
将一数字格式化为指定格式,返回值为字符串或数值
format('%0:,6.3f',1245.5634)=1245.563 将浮点数num转换为字符串,并指定小数点后位数
详细说明:
format函数格式化数字输出的操作符由6部分组成:
1、%:是起始控制符,表示从此处开始的字符串为格式化控制参数
2、0::表示控制格式化第几个数,此处"0:"表示控制第一个数,例如"5:"表示控制第5个数。此操作符也可以不写,系统将采用默认模式,默认的是从左往右顺序格式化
3、,:匹配","和",",表示需要控制格式化输出中显示千分符,如果不写","和","则表示不显示千分符
4、6:表示需要确保输出的位数为6位,位数不足前面以0补足(该控制一般应只对整数使用)。如对于数字1则会输出为000001(特别的,对于小数,则表示控制整个数的位数,最好不要在控制小数时使用此操作符)
5、.3: 表示控制小数位输出的个数,如.3表示显示3位小数,对于太大的数,小数位尽量不要控制
6、f': 匹配字符,该字符为类型转换字符,目前支持"d"(表示整数)"f"(表示小数)"s"(表示字符串),使用此操作符表示将输出数转换为指定类型输出。
例如:
函数 输出 说明
format('%.3f',1.0)1.000 控制小数位数
format('%3d',1) 0001 整数位不足补0
format('%,f',1111111111111.1111) 1,111,111,111,111.111 显示千分符
format('%d',12.5) 13 小数转换为整数(四舍五入)
format('%0:3d %1:.2f',12.5,10.4)0013 10.40 多数字控制(从0开始,"0:"表示控制第一个数字)
format('%5.3f',1.0) 01.000 最好不要控制小数位数的同时控制总的位数
format('%.3f',123234234234325345.5634)123234234234325344.000 太大数时,小数可能不准
xxxl 发表于 2021-2-3 09:37
我的意思是去掉原来的trunc函数,改成在显示表达式中用上面的表达式像这样原来是三位数
我在显式表达式 ...
谢谢,弱弱的问下self.value 是什么意思,能帮忙解答下吗,真的谢谢了
Plain 发表于 2021-2-3 13:26
谢谢,弱弱的问下self.value 是什么意思,能帮忙解答下吗,真的谢谢了
self.value是取当前表元的值 是表元对象表达式参考这两个帖子
https://bbs.esensoft.com/thread-136741-1-1.html
https://bbs.esensoft.com/thread-137256-1-1.html
xxxl 发表于 2021-2-3 13:33
self.value是取当前表元的值 是表元对象表达式参考这两个帖子
https://bbs.esensoft.com/thread-136741-1 ...
收到,再次感谢