You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aspose Excel下载时存在小数自动保留两位的舍入问题

Aspose处理Excel时小数自动舍入的排查与解决

遇到Excel原始数据小数正确,但用Aspose处理时字段被自动舍入的情况,大概率是以下几个原因导致,对应解决方法如下:

  • PrecisionAsDisplayed属性启用导致读取精度丢失
    Aspose.Cells的Workbook.Settings.PrecisionAsDisplayed属性如果设为true,会强制Aspose按照单元格的显示精度读取值,而非Excel存储的实际精确值。即使Excel里的单元格实际存储了多位小数,但如果显示格式是保留两位,Aspose会直接读取舍入后的值。
    解决方法:在加载工作簿后立即将该属性设为false:

    Workbook workbook = new Workbook("target.xlsx");
    // 禁用按显示精度读取,确保获取原始精确值
    workbook.Settings.PrecisionAsDisplayed = false;
    
  • 隐式数据类型转换导致截断
    若代码中存在将单元格值强制转换为整数(如(int)cell.Value)或使用Convert.ToInt32()等操作,会自动截断小数部分,造成舍入假象。检查代码中是否有此类不必要的类型转换,改用double或decimal类型接收单元格值:

    // 正确接收精确小数
    decimal actualValue = Convert.ToDecimal(cell.Value);
    
  • 单元格格式设置导致显示层面的"舍入"
    若处理后写入Excel时设置了单元格的数字格式为保留两位小数(如0.00),单元格会显示舍入后的结果,但实际存储的数值仍是精确的。如果这不是预期效果,可调整数字格式为不限制小数位数的类型,比如General或0.0000(根据需求设置):

    cell.Style.NumberFormat = "General";
    // 或者保留更多小数位数
    cell.Style.NumberFormat = "0.0000";
    

内容的提问来源于stack exchange,提问作者gouravm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:10:33