我正在撰写报告,我需要精确的十进制值。数字可以具有2个小数位的值,并且数字可以具有值10.如果我将小数范围设置为10个位置,该列将始终显示10个小数位数,大多数为0。如果它们存在,我如何忽略值中的0?例如,我喜欢这样显示的数据:
123.24
98.234
1212.678432
而不是:
123.2400000000
98.2340000000
1212.6784320000
答案 0 :(得分:9)
执行以下操作:
粘贴以下代码,并确保更改{myproc; 1.col1}以反映您的过程/列:
stringVar number := ToText({myproc;1.col1}, 8);
while (right(number, 1) = "0") do
number := left(number, len(number) - 1);
len(number) - InStr(number, ".");
重要强>:
答案 1 :(得分:4)
最简单的只需在格式文件中尝试下面的代码 - > Number-> Customize->小数代码部分:
if CurrentFieldValue=Int(CurrentFieldValue) then
0
else
2
号码' 2'是你的小数位,你可以自己替换它。
答案 2 :(得分:0)
如果您没有对此字段进行任何计算并仅报告,是否可以将其作为字符串而不是数字提供给报告?
答案 3 :(得分:0)
这将允许您将字段保留为数字,而不必转换为文本。此解决方案是小数点的格式更改。
•右键单击"详细信息"要将此格式应用于
的字段•点击"格式字段"
•点击"数字"标签
•点击"自定义..."
从您要保留的最大小数位开始,然后向后复制该行。例如,如果你知道有一个值的最大小数位,你想要保持从那个数字开始,即1.2345600,你将从5开始。如果数字是0,你必须首先考虑这个,否则你将得到一个错误
"字段名称"是您要更改格式的数据库字段名称。
If {"Field Name"} = 0 then 2 else
if((({"Field Name"})/(truncate({"Field Name},4)))>1) then 5 else
if((({"Field Name"})/(truncate({"Field Name},3)))>1) then 4 else
if((({"Field Name"})/(truncate({"Field Name},2)))>1) then 3 else
2