Java根据数字金额生成大写金额

2023-05-16

  • 要求 根据用户输入金额数字转换成相对应大写金额
  • 例如:430.65,转换成肆佰叁拾元陆角伍分
  • 代码如下:
    public class MoneyFormatUtils {
    
    	private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";
    	private static final String DIGIT = "零壹贰叁肆伍陆柒捌玖";
    	private static final double MAX_VALUE = 9999999999999.99D;
    
    	public static String change(double v) {
    		if (v < 0 || v > MAX_VALUE) {
    			return "参数非法!";
    		}
    		long l = Math.round(v * 100);
    		if (l == 0) {
    			return "零元整";
    		}
    		String strValue = l + "";
    		// i用来控制数
    		int i = 0;
    		// j用来控制单位
    		int j = UNIT.length() - strValue.length();
    		String rs = "";
    		boolean isZero = false;
    		for (; i < strValue.length(); i++, j++) {
    			char ch = strValue.charAt(i);
    			if (ch == '0') {
    				isZero = true;
    				if (UNIT.charAt(j) == '亿' || UNIT.charAt(j) == '万' || UNIT.charAt(j) == '元') {
    					rs = rs + UNIT.charAt(j);
    					isZero = false;
    				}
    			} else {
    				if (isZero) {
    					rs = rs + "零";
    					isZero = false;
    				}
    				rs = rs + DIGIT.charAt(ch - '0') + UNIT.charAt(j);
    			}
    		}
    		if (!rs.endsWith("分")) {
    			rs = rs + "整";
    		}
    		rs = rs.replaceAll("亿万", "亿");
    		return rs;
    	}
    
    	public static void main(String[] args) {
    		System.out.println(MoneyFormatUtils.change(430.65));
    	}
    }

     

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java根据数字金额生成大写金额 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • fwrite写入文件乱码问题

    参考下面这篇文章 xff08 使用fprintf写入文件 xff09 http c biancheng net cpp html 2936 html 使用fprintf 和 fscanf 代替 fwrite fscanf 和 fprintf
  • 目标检测中的样本不平衡处理方法——OHEM, Focal Loss, GHM, PISA

    GitHub 简书 CSDN 文章目录 1 前言2 OHEM3 Focal Loss3 1 Cross Entropy3 2 Balanced Cross Entropy3 3 Focal Loss3 4 模型初始化 4 GHM Gradi
  • 第16讲 | 流媒体协议:如何在直播里看到美女帅哥?

    最近直播比较火 xff0c 那一个直播系统里有哪些组成部分 xff0c 都用了哪些协议呢 xff1f 无论直播还是点播 xff0c 都是对于视频数据的传输 这里面涉及到许多的技术名词 三个名词系列 名词系列一 xff1a AVI MPEG
  • 【AI视野·今日CV 计算机视觉论文速览 第225期】Wed, 23 Jun 2021

    AI视野 今日CS CV 计算机视觉论文速览 Wed 23 Jun 2021 Totally 73 papers x1f449 上期速览 更多精彩请移步主页 Daily Computer Vision Papers Tracking Ins
  • 【AI视野·今日Robot 机器人论文速览 第十二期】Tue, 22 Jun 2021

    AI视野 今日CS Robotics 机器人学论文速览 Tue 22 Jun 2021 Totally 17 papers x1f449 上期速览 更多精彩请移步主页 Daily Robotics Papers PHYSFRAME Type
  • 【今日CV 计算机视觉论文速览 第96期】 8 Apr 2019

    今日CS CV 计算机视觉论文速览 Mon 8 Apr 2019 Totally 49 papers 上期速览 更多精彩请移步主页 Interesting 单图像修饰去除 通过估计图像中含有干扰的像素 xff08 水印 涂鸦和变形 xff0
  • gitee及github有什么区别?

    前言 xff1a 1 目前的最常用的版本控制中心有两种 xff1a SVN和Git xff1b 2 SVN xff1a 集中式版本控制中心 xff0c svn就像是一对多的关系 xff0c 一个仓库供多个人使用 xff0c 而且必须联网才能
  • 软体和软件的区别

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 我们这边把Software翻译为软件 xff0c 台湾同胞把它翻译为软体 最近生发一点思考 xff0c 觉得把Software翻译为软体
  • Docker入门

    Docker简介 Docker是开发人员和系统管理员构建 发布和运行分布式应用程序的开放平台 是应用容器 xff08 Application Container xff09 xff0c 是可以为应用提供可运行容器的一个平台 Docker看作
  • js 中 set 与 数组 相互转换

    1 定义set span class token keyword let span manage ip span class token operator 61 span span class token keyword new span
  • mybatis多条件批量删除整理

    批量增加 span class token operator lt span insert id span class token operator 61 span span class token string 34 batchSaveU
  • vscode设置打开多个标签页

    首先进入路径C Users admin AppData Roaming Code User xff1b 然后打开settings json文件 xff0c 并添加一条配置 xff1a 34 workbench editor enablePr
  • Java Date 关于before和after 的使用

    1 date1 after date 当date1大于date2时 xff0c 返回true xff0c 当小于等于时 xff0c 返回false xff1b 2 date1 before date xff0c 当date1小于date2时
  • js正则表达式判断密码满足大写字母,小写字母,数字和特殊字符,其中任意三种组合,且长度在8到15之间

    一 判断密码满足大写字母 xff0c 小写字母 xff0c 数字和特殊字符 xff0c 其中任意三种组合 xff0c 且长度在8到15之间 在js中的代码 xff0c 如下 var testPassword 61 a zA Z 43 A Z
  • Java 获取两个时间的时间差(时、分、秒)

    前言 在平时的工作中 xff0c 难免会遇到获取两个时间相差多少天 小时 分钟 秒 毫秒 xff0c 现在我将自己获取的方法总结如下 xff1a 注明 xff1a 原文章转载链接出自 xff1a https www cnblogs com
  • HeidiSQL工具导出导入MySQL数据

    有时候 为了数据方便导出导入SQL 我们可以借助一定的工具 方便我们队数据库的移植 可以达到事半功倍的效果 在这里 就给大家简单的介绍一款能方便导出或者导入MySQL的数据 首先 选择你要导出的数据库 点击鼠标右键 如下图所示 这里是进行对
  • Navicat相关注册码

    Navicat相关注册码 用户名和组织随便起 注册码如下 Navicat for SQL Server V10 0 10 NAVD 3CG2 6KRN IEPM NAVL NIGY 6MYY XWQE NAVI C3UU AAGI 57FW
  • 我心目中的好的技术教程

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 当人类进入互联网时代 xff0c 便宣告一个新的学习模式 网上学习的诞生 现在各种网上教程之多可以用恒河沙数来形容 xff08 这里暂时除
  • TCP的建立

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是TCP的建立 TCP是一个面向连接的可靠的传输控制协议 xff0c 在每次数据传输之前首先需要建立连接 xff0c 连接建立成功后才开
  • Java根据数字金额生成大写金额

    要求 根据用户输入金额数字转换成相对应大写金额例如 xff1a 430 65 xff0c 转换成肆佰叁拾元陆角伍分代码如下 xff1a public class MoneyFormatUtils private static final S