首页 > 其他分享 >批处理处理金额小数点问题

批处理处理金额小数点问题

时间:2023-05-15 10:25:02浏览次数:36  
标签:String 批处理 金额 小数点 value BigDecimal bigDecimal NumberAdapter out

NumberAdapter自定义转换器
/**
 * 用来处理小数点问题
 */
public class NumberAdapter extends TypeAdapter<String> {
    @Override
    public void write(JsonWriter out, String value) throws IOException {
        if (value == null) {
            out.nullValue();
        } else if (value.isEmpty()) {
            out.value("0");
        } else {
            out.value(value);
        }

    }

    @Override
    public String read(JsonReader in) throws IOException {
        JsonToken peek = in.peek();
        if (peek == JsonToken.NULL) {
            in.nextNull();
            return "0";
        }
        String value = in.nextString();
        BigDecimal bigDecimal = new BigDecimal(value);
        BigDecimal zero = BigDecimal.ZERO;
        if (bigDecimal.compareTo(zero) == 0) {
            return "0";
        }

        String result = bigDecimal.setScale(2, RoundingMode.DOWN).stripTrailingZeros().toPlainString();
//        Log.i("NumberAdapter", result);
        return result;

    }

}

  

bean类使用

 

    @JsonAdapter(NumberAdapter.class)
    private String money;

  

标签:String,批处理,金额,小数点,value,BigDecimal,bigDecimal,NumberAdapter,out
From: https://www.cnblogs.com/ganchuanpu/p/17401031.html

相关文章

  • 打开windows批处理大门
    大家好,我是xiezhr。1前言打开历史文章一看,上一篇文章是2021年3月20号更新的,又拖更了。一个原因是,最近工作上真的挺忙的,有比较着急需要加班加点赶的需求。好在清明前算是把比较着急的改好了。本来安排清明也是要加班的,但是真的加不动了。(连着加班真的挺影响效率的,适当休息是非......
  • el-input 控制输入内容只能输金额
    formatValue(value,row,item){letval=(value&&value.split(""))||[];letsNum=val.toString();//先转换成字符串类型if(sNum.indexOf('.')===0){//第一位就是.sNum='0'+sNum}sNum......
  • PSO优化LSTM做时间序列的预测,优化的是隐藏层单元数目,批处理大小,时间窗口大小,学习率等
    PSO优化LSTM做时间序列的预测,优化的是隐藏层单元数目,批处理大小,时间窗口大小,学习率等网络参数。ID:1888668442690309......
  • windows批处理如何为个位数字增加或者去掉前导0
    答案来自ChatGPT@echooffsetlocalrem设置字符串set"str=9"rem检查字符串长度if"%str:~1%"==""(set"str=0%str%")echo结果:%str%endlocal在这个示例中,我们首先将字符串9存储在变量str中。然后,我们使用子字符串提取操作%str:~1%来获取字符串的第二个字......
  • UITextField 限制小数输入金额
     -(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string{if(textField.text.length>10){returnrange.location<11;}else{BOOLisHaveDian=YES;......
  • 批处理中setlocal enabledelayedexpansion 变量延迟(转)
    本质上是因为批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行)在一行中即使是使用变量赋值也是无作用的,使用才有了变量延迟https://www.jb51.net/article/29323.htm ......
  • 批处理查看本机IP配置信息及本机端口号占用情况
    保存以下内容到chkLocalip.bat,可以查看本机IP配置情况@echooff&echo.setlocalif/i"%*"=="/?"goto:HelpPromptif/i"%*"=="-Help"goto:HelpPromptset"nicstr=Index^,Name^,NetConnectionID^,Speed^"set"n......
  • 华为OD机试 双十一 or 最大花费金额
    最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单 https://dream.blog.csdn.net/article/details/128980730华为OD机试真题大全,用Python解华为机试题|机试宝典 https://dream.blog.csdn.net/article/details/129221789【华为OD机试】全流程解析......
  • 批处理:关机、锁屏
      myLock.bat::::::::::::::::::::::::::::::::::::::::::::::::::::::::::锁定屏幕C:\Windows\System32\rundll32.exeuser32.dll,LockWorkStation:::::::::::::::::::::::::::::::::::::::::::::::::::::::: myshutdown.bat::::::::::::::::::::::::::::::::::......
  • C# 小数转百分比以及小数转字符串精确小数点
    模拟游戏中相乘减伤计算staticvoidTest(){Calc(newdouble[]{0.1,0.3,0.2,0.17,0.5});}staticvoidCalc(double[]arr){doubletotal=1;foreach(vardinarr){total*=(1-d......