点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
CR13:SAP BusinessObjects Crystal Reports 2013支持包5版本14.1.5.1501
数据库:MariaDB 10.1
-表:test
-字段
result_a FLOAT(5,1)
result_b FLOAT(5,1)
result_c FLOAT(5,2)
result_a = 4.4,result_b = 4.5,result_c = 0.5
-报表中的公式
Formula_d:{test .result_a}-{test.result_b}
Formula_e:{@formual_d} * {test.result_c}
round_005:round(-0.05,1)//--->`-0.1`
round_1 :round({@ formula_e},1)
Formula_check:
本地号码var a:= 4.40;
本地号码var b:= 4.50;
本地数字var c:= 0.50;
round((a-b)* c,1); //----->`-0.1`
--------------------------------------------------- -----------------------------
我想要`-0.1`但结果是`0.0`
对不起我的英语不好
报告-test.jpg (169.8 kB)
我从10.1升级到10.3,并将字段更改为十进制,但是它不起作用。
我需要取整({@formula_e},1)
所以...我更改了公式 。
round((({test.result_a}-{test.result_b})*({test.result_c} +0.0000001),1)
我认为这是临时措施。
我正在寻找解决方案。
谢谢。
嗨,
我重新创建了测试表 在SQL Server中,我的结果按预期工作。 我的检查公式显示为-0.10。
区别在于SQL Server必须使用Decimal(5,1)而不是Float,因为这是完全不同的数字类型。
由于这在SQL Server中有效,所以我认为问题可能出在数据库方面。 您是否正在使用ODBC或JDBC将Crystal连接到MariaDB?
您看到的问题通常是精度问题,并且数据库驱动程序未将数字解释为正确的精度。 一种测试方法是将公式中的舍入值增加到2,并将公式格式化为2位小数:
round_1:round({@ formula_e},2)
Crystal可能 能够正确显示该数字,或者如果您提高报表的精度,至少可以使您更准确地表示该数字。
检查MariaDB站点,并确保您拥有最新的驱动程序,然后查看是否有帮助。
祝你好运
Brian
一周热门 更多>