- 浏览: 643645 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
处理能力:
整数部分:9999999999999999(16位长,仟万亿)
小数部分:3位,多于3位舍去(不做四舍五入)
运行结果:
1.23 壹元贰角叁分
1234567890123456.123 壹仟贰佰叁拾肆万伍仟陆佰柒拾捌亿玖仟零壹拾贰万叁仟肆佰伍拾陆元壹角贰分叁厘
0.0798 柒分玖厘
10,001,000.09 壹仟万零壹仟元玖分
01.107700 壹元壹角柒厘
public
class
MoneyUtil {
/** 大写数字 */
private static final String[] NUMBERS = { " 零 " , " 壹 " , " 贰 " , " 叁 " , " 肆 " , " 伍 " , " 陆 " ,
" 柒 " , " 捌 " , " 玖 " };
/** 整数部分的单位 */
private static final String[] IUNIT = { " 元 " , " 拾 " , " 佰 " , " 仟 " , " 万 " , " 拾 " , " 佰 " ,
" 仟 " , " 亿 " , " 拾 " , " 佰 " , " 仟 " , " 万 " , " 拾 " , " 佰 " , " 仟 " };
/** 小数部分的单位 */
private static final String[] DUNIT = { " 角 " , " 分 " , " 厘 " };
/**
* 得到大写金额。
*/
public static String toChinese(String str) {
str = str.replaceAll( " , " , "" ); // 去掉","
String integerStr; // 整数部分数字
String decimalStr; // 小数部分数字
// 初始化:分离整数部分和小数部分
if (str.indexOf( " . " ) > 0 ) {
integerStr = str.substring( 0 , str.indexOf( " . " ));
decimalStr = str.substring(str.indexOf( " . " ) + 1 );
} else if (str.indexOf( " . " ) == 0 ) {
integerStr = "" ;
decimalStr = str.substring( 1 );
} else {
integerStr = str;
decimalStr = "" ;
}
// integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
if ( ! integerStr.equals( "" )) {
integerStr = Long.toString(Long.parseLong(integerStr));
if (integerStr.equals( " 0 " )) {
integerStr = "" ;
}
}
// overflow超出处理能力,直接返回
if (integerStr.length() > IUNIT.length) {
System.out.println(str + " :超出处理能力 " );
return str;
}
int [] integers = toArray(integerStr); // 整数部分数字
boolean isMust5 = isMust5(integerStr); // 设置万单位
int [] decimals = toArray(decimalStr); // 小数部分数字
return getChineseInteger(integers, isMust5) + getChineseDecimal(decimals);
}
/**
* 整数部分和小数部分转换为数组,从高位至低位
*/
private static int [] toArray(String number) {
int [] array = new int [number.length()];
for ( int i = 0 ; i < number.length(); i ++ ) {
array[i] = Integer.parseInt(number.substring(i, i + 1 ));
}
return array;
}
/**
* 得到中文金额的整数部分。
*/
private static String getChineseInteger( int [] integers, boolean isMust5) {
StringBuffer chineseInteger = new StringBuffer( "" );
int length = integers.length;
for ( int i = 0 ; i < length; i ++ ) {
// 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
// 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
String key = "" ;
if (integers[i] == 0 ) {
if ((length - i) == 13 ) // 万(亿)(必填)
key = IUNIT[ 4 ];
else if ((length - i) == 9 ) // 亿(必填)
key = IUNIT[ 8 ];
else if ((length - i) == 5 && isMust5) // 万(不必填)
key = IUNIT[ 4 ];
else if ((length - i) == 1 ) // 元(必填)
key = IUNIT[ 0 ];
// 0遇非0时补零,不包含最后一位
if ((length - i) > 1 && integers[i + 1 ] != 0 )
key += NUMBERS[ 0 ];
}
chineseInteger.append(integers[i] == 0 ? key
: (NUMBERS[integers[i]] + IUNIT[length - i - 1 ]));
}
return chineseInteger.toString();
}
/**
* 得到中文金额的小数部分。
*/
private static String getChineseDecimal( int [] decimals) {
StringBuffer chineseDecimal = new StringBuffer( "" );
for ( int i = 0 ; i < decimals.length; i ++ ) {
// 舍去3位小数之后的
if (i == 3 )
break ;
chineseDecimal.append(decimals[i] == 0 ? ""
: (NUMBERS[decimals[i]] + DUNIT[i]));
}
return chineseDecimal.toString();
}
/**
* 判断第5位数字的单位"万"是否应加。
*/
private static boolean isMust5(String integerStr) {
int length = integerStr.length();
if (length > 4 ) {
String subInteger = "" ;
if (length > 8 ) {
// 取得从低位数,第5到第8位的字串
subInteger = integerStr.substring(length - 8 , length - 4 );
} else {
subInteger = integerStr.substring( 0 , length - 4 );
}
return Integer.parseInt(subInteger) > 0 ;
} else {
return false ;
}
}
public static void main(String[] args) {
String number = " 1.23 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 1234567890123456.123 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 0.0798 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 10,001,000.09 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 01.107700 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
}
}
/** 大写数字 */
private static final String[] NUMBERS = { " 零 " , " 壹 " , " 贰 " , " 叁 " , " 肆 " , " 伍 " , " 陆 " ,
" 柒 " , " 捌 " , " 玖 " };
/** 整数部分的单位 */
private static final String[] IUNIT = { " 元 " , " 拾 " , " 佰 " , " 仟 " , " 万 " , " 拾 " , " 佰 " ,
" 仟 " , " 亿 " , " 拾 " , " 佰 " , " 仟 " , " 万 " , " 拾 " , " 佰 " , " 仟 " };
/** 小数部分的单位 */
private static final String[] DUNIT = { " 角 " , " 分 " , " 厘 " };
/**
* 得到大写金额。
*/
public static String toChinese(String str) {
str = str.replaceAll( " , " , "" ); // 去掉","
String integerStr; // 整数部分数字
String decimalStr; // 小数部分数字
// 初始化:分离整数部分和小数部分
if (str.indexOf( " . " ) > 0 ) {
integerStr = str.substring( 0 , str.indexOf( " . " ));
decimalStr = str.substring(str.indexOf( " . " ) + 1 );
} else if (str.indexOf( " . " ) == 0 ) {
integerStr = "" ;
decimalStr = str.substring( 1 );
} else {
integerStr = str;
decimalStr = "" ;
}
// integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
if ( ! integerStr.equals( "" )) {
integerStr = Long.toString(Long.parseLong(integerStr));
if (integerStr.equals( " 0 " )) {
integerStr = "" ;
}
}
// overflow超出处理能力,直接返回
if (integerStr.length() > IUNIT.length) {
System.out.println(str + " :超出处理能力 " );
return str;
}
int [] integers = toArray(integerStr); // 整数部分数字
boolean isMust5 = isMust5(integerStr); // 设置万单位
int [] decimals = toArray(decimalStr); // 小数部分数字
return getChineseInteger(integers, isMust5) + getChineseDecimal(decimals);
}
/**
* 整数部分和小数部分转换为数组,从高位至低位
*/
private static int [] toArray(String number) {
int [] array = new int [number.length()];
for ( int i = 0 ; i < number.length(); i ++ ) {
array[i] = Integer.parseInt(number.substring(i, i + 1 ));
}
return array;
}
/**
* 得到中文金额的整数部分。
*/
private static String getChineseInteger( int [] integers, boolean isMust5) {
StringBuffer chineseInteger = new StringBuffer( "" );
int length = integers.length;
for ( int i = 0 ; i < length; i ++ ) {
// 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
// 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
String key = "" ;
if (integers[i] == 0 ) {
if ((length - i) == 13 ) // 万(亿)(必填)
key = IUNIT[ 4 ];
else if ((length - i) == 9 ) // 亿(必填)
key = IUNIT[ 8 ];
else if ((length - i) == 5 && isMust5) // 万(不必填)
key = IUNIT[ 4 ];
else if ((length - i) == 1 ) // 元(必填)
key = IUNIT[ 0 ];
// 0遇非0时补零,不包含最后一位
if ((length - i) > 1 && integers[i + 1 ] != 0 )
key += NUMBERS[ 0 ];
}
chineseInteger.append(integers[i] == 0 ? key
: (NUMBERS[integers[i]] + IUNIT[length - i - 1 ]));
}
return chineseInteger.toString();
}
/**
* 得到中文金额的小数部分。
*/
private static String getChineseDecimal( int [] decimals) {
StringBuffer chineseDecimal = new StringBuffer( "" );
for ( int i = 0 ; i < decimals.length; i ++ ) {
// 舍去3位小数之后的
if (i == 3 )
break ;
chineseDecimal.append(decimals[i] == 0 ? ""
: (NUMBERS[decimals[i]] + DUNIT[i]));
}
return chineseDecimal.toString();
}
/**
* 判断第5位数字的单位"万"是否应加。
*/
private static boolean isMust5(String integerStr) {
int length = integerStr.length();
if (length > 4 ) {
String subInteger = "" ;
if (length > 8 ) {
// 取得从低位数,第5到第8位的字串
subInteger = integerStr.substring(length - 8 , length - 4 );
} else {
subInteger = integerStr.substring( 0 , length - 4 );
}
return Integer.parseInt(subInteger) > 0 ;
} else {
return false ;
}
}
public static void main(String[] args) {
String number = " 1.23 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 1234567890123456.123 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 0.0798 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 10,001,000.09 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = " 01.107700 " ;
System.out.println(number + " " + MoneyUtil.toChinese(number));
}
}
发表评论
-
hibernate Restrictions用法 MatchMode.ANYWHERE
2012-07-14 15:50 3870方法 说明 Res ... -
URLClassLoader
2012-05-27 19:45 961This example shows how a serv ... -
MyClassLoader 自定义类加载器
2012-05-27 19:38 1470package demo; import java. ... -
Deal with big-endian and little-endian order
2011-12-25 19:17 1070Java virtual machine always use ... -
修改eclipse的背景色
2011-11-12 19:23 1079eclipse 操作界面默认颜色为白色。对于我们长期 ... -
多线程管道流输入输出模式
2011-11-07 07:23 1059import java.io.* ; class Send ... -
Java计数单字节双字节字符个数的例子
2011-10-26 14:29 1270/* 计数单双字符的个数并存储在Map对象中 ... -
常用内存数据库3
2011-10-24 00:24 14544.1.2 哪些场合适合使用其他的关系型数据库管 ... -
java字节码规则
2011-09-05 13:56 1221栈和局部变量操作 将常量压入栈的指令 aconst_nul ... -
Tomcat中限制ip访问
2011-08-23 21:40 1218Tomcat中限制ip访问是非常简单的,只需要编辑server ... -
一个Java程序员应该掌握的10项技能
2011-08-22 10:27 5861、语法:必须比较熟 ... -
2011 年 8 月 Java 开发人员新闻快讯
2011-08-18 18:59 798Java SE 7 发布了! 经过世界各地 Ja ... -
BlockingQueue
2011-08-13 09:59 684import java.util.concurrent.Arr ... -
eclipse中java项目转换为web项目
2011-07-27 18:29 869经常在eclipse中导入web项目时,出现转不了项目类型 ... -
Oracle官方Weblogic插件安装
2011-07-20 22:00 2834Installing Oracle Enterprise Pa ... -
Java集合HashSet-ArrayList-HashMap的线程同步控制方法和区别
2011-06-21 17:44 2276C ollections类中提供了多 ... -
关于java的集合类,以及HashMap中Set的用法
2011-06-21 17:35 1762import java.util.*; public c ... -
Java的动态代理实例
2011-06-16 03:44 1025首先写一个接口: package net.test.dyna ... -
Java如何调用可执行文件和批处理命令
2011-06-07 00:58 2277Java是种跨平台的语言,我们经常碰到需要通过Java调用wi ... -
jsp实现图片验证码的方法
2011-06-07 00:57 1359调用方法 <img src=&quo ...
相关推荐
项目规划与设计: 确定系统需求,包括商品管理的功能(如添加商品、编辑商品、删除商品、查看商品列表等)。 设计数据库模型,包括商品表、类别表、库存表等。 确定系统的技术栈,如使用Spring MVC作为MVC框架、Hibernate或MyBatis作为ORM框架、Spring Security进行权限控制等。 环境搭建: 搭建开发环境,包括安装JDK、配置Servlet容器(如Tomcat)、配置数据库(如MySQL)等。 创建一个Maven项目,添加所需的依赖库。 数据库设计与创建: 根据设计好的数据库模型,在数据库中创建相应的表结构。 后端开发: 创建Java实体类,对应数据库中的表结构。 编写数据访问层(DAO)代码,实现对商品信息的增删改查操作。 编写服务层(Service)代码,实现业务逻辑,如商品管理的各种操作。 开发控制器层(Controller),实现与前端页面的交互,接收请求并调用相应的服务进行处理。 前端开发: 使用HTML、CSS和JavaScript等前端技术,设计并实现商品管理页面的界面。 通过Ajax技术,实现前后端的数据交互,如异步加载商品列表、实
变频器 母线电容计算 mathcad
2022年中国大学生计算机设计大赛国赛优秀作品点评微课与教学辅助&数媒静态设计专业组视频提取方式是百度网盘分享地址
如果您想要在程序中输出月份的英文名称,并且提到了“pta”,但这里的“pta”与月份名称的输出没有直接关系(除非您是在特定的上下文中使用它作为一个变量名或标识符)。不过,我将直接给出如何输出月份英文名称的代码示例。 在Python中,您可以使用一个列表(list)或字典(dictionary)来存储月份的英文名称,并根据需要输出它们。以下是一个简单的示例: python # 使用列表存储月份的英文名称 months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] # 假设我们要输出第5个月份(即May) month_index = 4 # 注意列表索引从0开始,所以5月份是索引4 print(months[month_index]) # 输出: May # 或者,如果您想要通过月份的数字(1-12)来输出名称,可以稍作调整 def get_mo
单片机C语言Proteus仿真实例万年历提取方式是百度网盘分享地址
base.apk
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
母亲节祝福html源码 由于HTML是一种标记语言,主要用于网页的结构和内容展示,它本身并不包含大量的文本内容。但我可以为你提供一个简单的HTML页面模板,该模板包含一个针对母亲节的祝福页面,并给出一些建议和提示,以便你可以根据此模板扩展内容至接近2000字(这主要通过在页面中添加文本内容来实现,而不仅仅是HTML代码)。 以下是一个简单的HTML模板: html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>母亲节祝福</title> <style> body { font-family: Arial, sans-serif; background-color: #f2f2f2; ma
贪吃蛇.cpp
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
2024年5月全国大众点评美食店铺信息,共550万余家 。此处仅展示1万家,全量也有。 2024年5月最新大众点评店铺基础信息采集。含美食、休闲娱乐、结婚、电影演出赛事、丽人、酒店、亲子、周边游、运动健身、购物、家装、学习培训、医疗健康、爱车、宠物等十几大类共几千万家店铺信息。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
个人学习上海交大郑益慧老师网课手写的笔记,同时结合自己学校老师的笔记资源。
照明系统电缆设计软件
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
公司财务部绩效考核表.xlsx
Python源码-不那么枯燥的猜数游戏
k8s之安装中用于配置cni
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes