想用Format进行显示格式化,显示效果为:XXX%
Expression 为:
string( rate, "###.######%" )
和
rate*100 + '%'
两种表达式显示的效果一样,问题是:如果数值大于0,或有中间有0,就会出现错误的结果
测试数据
--------------------------------------------------------------------
表达式 rate数值 结果 √×
--------------------------------------------------------------------
string( rate, "###.######%" ) 0.01 1% √
或rate*100 + '%' 0.034 3.4% √
0.2345 23.45% √
0.1024 10.24% √
1.23 123% √
1.02 112% ×
1.205 121.5% ×
12.05 1215% ×
0.1002 10.12% ×
0.1203 12.13% ×
以上是测试的数据,请各位在给我指点一下,谢谢
10 个解决方案
#1
不是显示格式问题吧?
decimal(2,6) 改成decimal(12,6)看看
decimal(2,6) 改成decimal(12,6)看看
#2
写错了,是decimal(10,6),不行,不是这的问题
#3
直接在format中写:0.00%
不要再expression中写任何内容
不要再expression中写任何内容
#4
直接在format中写:0.00%
不要再expression中写任何内容
则:
如果需要得到如下效果:
则在expression中,写:if(rate * 100 = int(rate * 100), '0%', '0.##%')
不要再expression中写任何内容
则:
0.2345 23.45%
0.1024 10.24%
1.23 123.00%
1.02 102.00%
如果需要得到如下效果:
0.2345 23.45%
0.1024 10.24%
1.23 123%
1.02 102%
则在expression中,写:if(rate * 100 = int(rate * 100), '0%', '0.##%')
#5
先谢谢 yyoinge ,我先测试一下
#6
再问一下yyoinge, 如果我想 rate > 0.01的用XX%来表示,rate < 0.01的用XX‰来表示,如何写,谢谢
#7
这个用format无法实现,因为在pb中format里面的‰不是系统预置的格式符号,无法对decimal类型的数据进行自动×1000并加上‰的处理(%是预置的格式符号,对decimal类型的数据,会自动进行×100并加上%的处理)
你只能通过计算列来实现:
添加一个计算列,表达式为:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
你只能通过计算列来实现:
添加一个计算列,表达式为:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
#8
再次谢谢 yyoinge,你的方法1: if(rate * 100 = int(rate * 100), '0%', '0.##%')可以实现百分比显示,很不错,经过你的指点,我又找到一个更好的方法:
直接在format中写:##.######% 就可以了
yyoinge,你的方法2:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
还是会出现我开始所提出的问题
经过你的指点,我找到的最佳答案,实现百分比和千分比的格式显示,
供各位参考:
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )
谢谢 yyoinge,结贴,分照给
#9
直接在format中写:##.######% 就可以了
会出现
1.02 显示为 102.%
的情况
会出现
1.02 显示为 102.%
的情况
#10
你说的这个情况我发现了,结合你给的方法,得到下比较理想的方法:
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )
#1
不是显示格式问题吧?
decimal(2,6) 改成decimal(12,6)看看
decimal(2,6) 改成decimal(12,6)看看
#2
写错了,是decimal(10,6),不行,不是这的问题
#3
直接在format中写:0.00%
不要再expression中写任何内容
不要再expression中写任何内容
#4
直接在format中写:0.00%
不要再expression中写任何内容
则:
如果需要得到如下效果:
则在expression中,写:if(rate * 100 = int(rate * 100), '0%', '0.##%')
不要再expression中写任何内容
则:
0.2345 23.45%
0.1024 10.24%
1.23 123.00%
1.02 102.00%
如果需要得到如下效果:
0.2345 23.45%
0.1024 10.24%
1.23 123%
1.02 102%
则在expression中,写:if(rate * 100 = int(rate * 100), '0%', '0.##%')
#5
先谢谢 yyoinge ,我先测试一下
#6
再问一下yyoinge, 如果我想 rate > 0.01的用XX%来表示,rate < 0.01的用XX‰来表示,如何写,谢谢
#7
这个用format无法实现,因为在pb中format里面的‰不是系统预置的格式符号,无法对decimal类型的数据进行自动×1000并加上‰的处理(%是预置的格式符号,对decimal类型的数据,会自动进行×100并加上%的处理)
你只能通过计算列来实现:
添加一个计算列,表达式为:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
你只能通过计算列来实现:
添加一个计算列,表达式为:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
#8
再次谢谢 yyoinge,你的方法1: if(rate * 100 = int(rate * 100), '0%', '0.##%')可以实现百分比显示,很不错,经过你的指点,我又找到一个更好的方法:
直接在format中写:##.######% 就可以了
yyoinge,你的方法2:
if(rate >= 0.01, string(rate * 100) + '%', string(a * 1000) + '‰')
还是会出现我开始所提出的问题
经过你的指点,我找到的最佳答案,实现百分比和千分比的格式显示,
供各位参考:
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )
谢谢 yyoinge,结贴,分照给
#9
直接在format中写:##.######% 就可以了
会出现
1.02 显示为 102.%
的情况
会出现
1.02 显示为 102.%
的情况
#10
你说的这个情况我发现了,结合你给的方法,得到下比较理想的方法:
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )
if( rate * 100 = int( rate * 100 ), '########%', if( rate > 0.01, '##.######%', rate * 1000 + '‰' ) )