我正在报告,我需要精确的十进制值。数字可以具有2个小数位的值,并且数字可以具有值10.如果我将小数范围设置为10个位置,该列将始终显示10个小数位数,大多数为0。如果它们存在,我如何忽略值中的0?例如,我喜欢这样显示的数据:
123.24
98.234
1212.678432
代替:
123.2400000000
98.2340000000
1212.6784320000
请执行下列操作:
stringVar number := ToText({myproc;1.col1}, 8);
while (right(number, 1) = "0") do
number := left(number, len(number) - 1);
len(number) - InStr(number, ".");
重要:
最简单的只需在格式字段 - >数字 - >自定义 - >小数代码部分中尝试以下代码:
if CurrentFieldValue=Int(CurrentFieldValue) then
0
else
2
数字'2'是你的小数位,你可以用你自己的替换它。
如果您没有对此字段进行任何计算并仅报告它,您是否可以将其作为字符串而不是数字提供给报告?
这将允许您将字段保留为数字,而不必转换为文本。此解决方案是小数点的格式更改。
•右键单击要应用此格式的“详细信息”字段
•单击“格式字段”
•单击“编号”选项卡
•单击“自定义...”
从您要保留的最大小数位开始,然后向后复制该行。例如,如果你知道有一个值的最大小数位,你想要保持从那个数字开始,即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