首页 > 其他分享 >金额数字转成万元

金额数字转成万元

时间:2023-04-14 11:14:27浏览次数:36  
标签:数字 formatNumStr compareTo 金额 万元 b3 sb append BigDecimal

package com.swift.utils;

import java.math.BigDecimal;

public class NumberToW {

    public static StringBuffer formatNum(String num, Boolean b) {

        StringBuffer sb = new StringBuffer();
        BigDecimal b0 = new BigDecimal("100");
        BigDecimal b1 = new BigDecimal("10000");
        BigDecimal b2 = new BigDecimal("100000000");
        BigDecimal b3 = new BigDecimal(num);

        String formatNumStr = "";
        String unit = "";

        // 以百为单位处理
        if (b) {
            if (b3.compareTo(b0) == 0 || b3.compareTo(b0) == 1) {
                return sb.append("99+");
            }
            return sb.append(num);
        }

        // 以万为单位处理
        if (b3.compareTo(b1) == -1) {
            formatNumStr = b3.toString();
        } else if ((b3.compareTo(b1) == 0 && b3.compareTo(b1) == 1)
                || b3.compareTo(b2) == -1) {
            unit = "万";

            formatNumStr = b3.divide(b1).toString();
        } else if (b3.compareTo(b2) == 0 || b3.compareTo(b2) == 1) {
            unit = "亿";
            formatNumStr = b3.divide(b2).toString();

        }
        if (!"".equals(formatNumStr)) {
            int i = formatNumStr.indexOf(".");
            if (i == -1) {
                sb.append(formatNumStr).append(unit);
            } else {
                i = i + 1;
                String v = formatNumStr.substring(i, i + 1);
                if (!v.equals("0")) {
                    sb.append(formatNumStr.substring(0, i + 1)).append(unit);
                } else {
                    sb.append(formatNumStr.substring(0, i - 1)).append(unit);
                }
            }
        }
        if (sb.length() == 0)
            return sb.append("0");
        return sb;
    }


}

 

标签:数字,formatNumStr,compareTo,金额,万元,b3,sb,append,BigDecimal
From: https://www.cnblogs.com/hua900822/p/17317681.html

相关文章

  • 数字图像处理之「中值滤波」
    中值滤波原理中值滤波就是用一个奇数点的移动窗口(要求奇数主要是为了保证整个模板有唯一中心元素),将窗口中心点的值用窗口内各点的中值代替。假设窗口内有5点,其值为80、90、200、110和120,那么此窗口内各点的中值即为110。设有一个一维序列f1,f2,...,fnf1,f2,...,fn,取窗口长度(点数......
  • 剑指 Offer 62. 圆圈中最后剩下的数字
    题目链接:剑指Offer62.圆圈中最后剩下的数字方法:约瑟夫环+倒推解题思路假设我们最好剩余的数字是\(N\)。执行完"删除第三个元素"的操作后,\(N\)在新数组中的位置\(P\)的意义是什么?它表示,在新数组中,\(N\)前面有还有\(P\)个元素。那么,在当前数组中,\(N\)前面一定有......
  • 实数小写金额转大写
    编程序实现如下功能:从键盘输入一个包含小数的小写金额(整数部分不超过7位),将其转换为汉字大写金额,最后输出结果。提示:不需要对0进行特殊处理。(C语言微课视频——哔哩哔哩网站——账号:巨之说)输入格式:输入一个包含小数的小写金额(整数部分不超过7位,小数部分不超过2位)。输出格式:......
  • 【开源项目】虎门大桥数字孪生应用智慧桥梁——开放数据及源码
    体验虎门大桥数字孪生技术,免费获取工程和源码,助力您的工程数字化转型。项目介绍虎门大桥是中国广东省珠海市和东莞市之间的一座跨海大桥,是世界上最长的跨海大桥之一,也是中国的一项重要基础设施工程。通过数字孪生技术,成功地实现了对桥梁的仿真和优化,给虎门大桥带上智慧的"眼睛"。通......
  • 洛谷 P3292 [SCOI2016]幸运数字
    https://www.luogu.com.cn/problem/P3292多次询问求一条链取若干点的最大异或和考虑一个集合的最大异或和可以求出线性基完成,两个集合的线性基可以合并,但是线性基并没有可减性,于是我们求lca的时候只能每次往集合里添加一条链,为了保证复杂度只能用倍增做。std::vector<i64>......
  • 算法 | 数字图像处理之「中值滤波」
    中值滤波原理中值滤波就是用一个奇数点的移动窗口,将窗口中心点的值用窗口内个点的中值代替。假设窗口内有5点,其值为80、90、200、110和120,那么此窗口内各点的中值即为110。设有一个一维序列\(f_1,f_2,...,f_n\),取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相机抽......
  • input number 数字输入限制
    转自:https://blog.csdn.net/qq_43535970/article/details/127516919inputnumber数字输入限制,最大值最小值输入范围限制前言有时候我们会有一些需求限制输入数字的大小,比如一个24小时数字输入框,7天数字输入框等等,这个时候我们就需要单独进行处理了。解决方案我看了看网上,解决方......
  • input输入框只能输入数字,只能输入字母数字组合
    转自:https://www.jianshu.com/p/fc5d02cdf3d7输入大小写字母、数字、下划线:<inputtype="text"onkeyup="this.value=this.value.replace(/[^\w_]/g,'');">输入小写字母、数字、下划线:<inputtype="text"onkeyup="this.value=this.value.......
  • 数字先锋 | “智慧旅游”新模式,天翼云助力张家界旅游产业创新发展!
    万物复苏、草长莺飞,正是春游踏青的好时节。2023年开年以来,我国文化和旅游产业迎来强劲复苏,其中,数字科技的多样化运用,成为各地景区整合旅游资源、创新消费场景的“引流”好帮手。近年来,随着云计算、大数据等为代表的新一代信息技术的普及应用,科技与文旅融合发展成为新的行业趋势。......
  • 实现数字化转型升级,快速开发平台流辰信息来助力!
    在如今迅猛发展的年代里,科技的力量是伟大的,可以让老百姓的生活变得丰富多彩,也可以让各行各业的企业实现办公自动化,朝着数字化转型升级,快速提升办公协作效率。快速开发平台流辰信息作为一家低代码平台服务商,深知肩上所扛的责任与义务,将秉承初心,持续奋斗,创新研发,为行业的进步和用户......