study1990 发表于 2014-7-3 14:40:00

【ASP.NET】计算小数出现误差

在spread里,添加一个公式:=6356.41-372117.02+372117.02
计算结果是6356.40999999997

6356.41-372117.02为负值,再加上372117.02,出现了问题。

在不设置单元格属性(限制小数位数)下,怎么解决这个问题?

study1990 发表于 2014-7-4 08:47:00

人呢?:~

iceman 发表于 2014-7-4 17:51:00

回复 1楼study1990的帖子

抱歉,当前这个问题只能通过设置单元格类型小数位来解决。

            this.FpSpread1.Sheets.Cells.Formula = "6356.41-372117.02+372117.02";

            FarPoint.Web.Spread.DoubleCellType dblc = new FarPoint.Web.Spread.DoubleCellType();
            dblc.DecimalDigits = 2;
            dblc.FixedPoint = true;
            FpSpread1.ActiveSheetView.Cells.CellType = dblc;

study1990 发表于 2014-7-9 09:34:00

回复 3楼iceman的帖子

好吧,谢谢了。:)

study1990 发表于 2014-7-9 11:13:00

回复 3楼iceman的帖子

上面的公式只是几个例子,实际情况,客户不一定想要2位小数,运算几位就保留几位。
比如 =C1(6356.41)-C2(372117.02)+C3(372117.02)来计算的。再得到结果之前,你不知道最终结果有几位小数,所以公式中没办法手动设置小数位。
其次,你们的产品作为一个正式产品,应该是可以解决的。Excel中计算就没有这样的问题。

iceman 发表于 2014-7-9 15:54:00

回复 5楼study1990的帖子

是的,这个问题我们已经作为产品的需求提交给产品组。

为了感谢您提出的产品建议以及长期以来对我们的支持,给您分发 500 金币。
具体奖品兑换规则请参考:点击查看

study1990 发表于 2014-7-10 09:38:00

回复 6楼iceman的帖子

谢谢,希望你们产品越做越好:i0tw:

iceman 发表于 2014-7-10 09:54:00

回复 7楼study1990的帖子

为了提升我们的服务质量,请您对本次服务做出评分。谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062

iceman 发表于 2014-7-21 11:12:00

回复 7楼study1990的帖子

问题已经被确认为 bug,BugID 为75,842 ,有进一步消息会第一时间通知你。

study1990 发表于 2014-7-22 08:50:00

回复 9楼iceman的帖子

好的。
页: [1] 2
查看完整版本: 【ASP.NET】计算小数出现误差