小数去除尾部的0

1.利用正则表达

复制代码
String s = “123.045600”;

if(s.indexOf(“.”) > 0){

//正则表达

s = s.replaceAll(“0+?$”, “”);//去掉后面无用的零

s = s.replaceAll(“[.]$”, “”);//如小数点后面全是零则去掉小数点

}

复制代码

  1. 使用NumberFormat

import java.text.NumberFormat

NumberFormat nf = NumberFormat.getInstance();

String value = nf.format(321.32100);
输出为321.321

### ABAP 中去除小数位上多余 0 的方法 在 ABAP 编程中,可以通过多种方式来处理字符串或数值中的小数部分,以移除不必要的零。以下是几种常见的方式: #### 使用 `SHIFT` 和 `CONDENSE` 通过组合使用 `SHIFT` 和 `CONDENSE` 关键字可以有效地删除小数点后面无意义的零。 ```abap DATA: lv_number TYPE STRING. IF wa_item-znumber IS NOT INITIAL. lv_number = wa_item-znumber. CONDENSE lv_number. " 合并字符[^1] SHIFT lv_number RIGHT DELETING TRAILING '0'. " 删除右边连续的'0' SHIFT lv_number RIGHT DELETING TRAILING '.'. " 如果有小数点也一并删去 ELSE. lv_number = ''. ENDIF. CONDENSE lv_number. " 再次合并字符 CLEAR wa_item-znumber. ``` 此代码片段展示了当变量不为空时如何操作:先将其赋值给临时字符串变量;接着利用 `CONDENSE` 函数消除内部空白;再分别用两次 `SHIFT ... DELETING TRAILING` 来清除尾部可能出现的‘0’以及可能存在的孤立小数点;最后再次调用 `CONDENSE` 确保结果紧凑。 #### 处理 ALV 输出中小数点后的 0 对于特定场景下的数据显示需求,比如 ALV 报表输出,可以直接设置字段属性避免显示不需要的小数位。 ```abap FORM FRM_CATLG_SET USING P_FIELD P_TEXT P_KEY. DATA: ls_fieldcat TYPE slis_fieldcat_alv. ls_fieldcat-fieldname = p_field. ls_fieldcat-seltext_l = p_text. ls_fieldcat-key = p_key. ls_fieldcat-no_zero = 'X'. IF p_field = 'LINE_SUM'. ls_fieldcat-decimals_out = '0'. " 设置为整数形式展示[^5] ENDIF. APPEND ls_fieldcat TO gd_fieldcat . CLEAR ls_fieldcat . ENDFORM. ``` 这段代码说明了怎样配置 ALV 字段目录项 (`slis_fieldcat_alv`) ,特别是针对金额类字段(如 `LINE_SUM`),指定其不应带有任何小数位,并且启用 `no_zero` 属性防止额外零的出现。 #### 调用函数模块实现更精确控制 如果项目中有更高精度的要求,则可考虑采用标准 SAP 提供的功能模块来进行四舍五入或其他定制化处理。 ```abap CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS' EXPORTING value_in = dat conv_dec = 4 IMPORTING value_out = dat1 EXCEPTIONS no_rounding_required = 1 decimals_greater_than_10 = 2 rounding_error = 3. ``` 这里介绍了一个名为 `'HR_NZ_ROUNDING_DECIMALS'` 的功能模块,它允许开发者传入待处理的数据及期望保留的有效小数位数,在执行完毕后返回经过适当调整的结果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值