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

SAS中无需四舍五入将数值保留2位小数的实现方法咨询

SAS保留两位小数且不触发四舍五入的实现方案

你可以通过截断小数位+指定固定小数格式的组合实现需求,不需要用到四舍五入相关函数:

方案1:保留数值类型

使用TRUNC函数先截断多余小数位,再给变量指定两位小数的输出格式即可,小数位不足时会自动补零:

data result;
    input raw_num;
    /* 直接截断到2位小数,无四舍五入 */
    processed_num = trunc(raw_num, 2);
    /* 指定输出格式为最多16位整数+2位小数,不足小数位补零 */
    format processed_num 18.2;
    datalines;
1234.1
777777
65797667.11
;
run;

运行后processed_num的输出结果和你预期完全一致:

  • 1234.10
  • 777777.00
  • 65797667.11

方案2:输出为字符类型

如果需要直接得到带两位小数的字符结果,结合PUT函数实现即可:

num_char = put(trunc(raw_num, 2), 18.2);

注意事项

  • 格式声明里的总长度(上述示例的18)要大于等于你数据里最长数值的总位数(整数位+小数点+2位小数),否则会输出星号报错
  • 不要使用ROUND类函数处理,会触发四舍五入逻辑,不符合你的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:04