- 浏览: 1370871 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (551)
- 计划 (4)
- java (115)
- oracle (60)
- ajax (3)
- javascript (64)
- 计算机操作技巧集 (11)
- 近期关注话题 (10)
- 随想 (13)
- html (6)
- struts (15)
- hibernate (16)
- spring (2)
- game (0)
- Eglish (10)
- DisplayTag (6)
- jsp (18)
- css (3)
- eclipse (3)
- 其他知识 (8)
- 备用1 (12)
- 备用2 (1)
- 笑话-放松心情 (9)
- 设计 (1)
- 设计模式 (1)
- 数据结构 (0)
- office办公软件 (5)
- webwork (0)
- tomcat (2)
- MySql (1)
- 我的链接资源 (5)
- xml (2)
- servlet (0)
- PHP (13)
- DOM (0)
- 网页画图vml,canvas (1)
- 协议 (2)
- 健康 (3)
- 书籍下载 (1)
- jbpm (1)
- EXT (1)
- 自考 (2)
- 报表 (4)
- 生活 (64)
- 操作系统基础知识 (2)
- 测试 (2)
- guice (1)
- google学习 (2)
- Erlang (1)
- LOG4J (2)
- wicket (1)
- 考研 (1)
- 法律 (1)
- 地震 (1)
- 易学-等等相关 (1)
- 音乐 (1)
- 建站 (4)
- 分享说 (3)
- 购物省钱 (0)
- linux (1)
最新评论
-
zenmshuo:
如果使用SpreadJS这一类的表格工具,应该能更好的实现这些 ...
js中excel的用法 -
hjhj2991708:
第一个已经使用不了
jar包查询网站 非常好用! -
jiangmeiwei:
...
中文乱码 我的总结 不断更新 -
gary_bu:
...
response.sendRedirect 中文乱码问题解决 -
hnez:
多谢指点,怎么调试也不通,原来我在<body>&l ...
ExtJs IE ownerDocument.createRange() 错误解决方案
原文:http://hi.baidu.com/myloveral/blog/item/96e901df5aa0e51262279870.html
一、将数据库中的数字转化为金额(逗号分割的形式)
convert(varchar,cast(amt as money),1)
二、求汇总量
1.大数运算
(1)大数运算类
----------------------------- Arith.java ----strat--------------------------------------
/*
* 创建日期 2004-10-14
*
* 如果需要精确计算,非要用String来够造BigDecimal不可
*/
package com.ysusoft.util.common;
/**
* @author Jstar
*
*
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
import java.math.BigDecimal;
/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点数运算,包括加减乘除和四舍五入。
*/
public class Arith {
//默认除法运算精度
private static final int DEF_DIV_SCALE = 10;
//这个类不能实例化
private Arith() {
}
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1, double v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
};
----------------------------- Arith.java ----end--------------------------------------
(2)程序中调用
//所有数值格式的抽象基类NumberFormat 的格式化十进制数值的具体子类
<%@ page import="java.text.DecimalFormat" %>
//Arith的路径
<%@ page import="com.ysusoft.util.common.Arith"%>
// 不可变的、任意精度的带符号的十进制数
<%@ page import="java.math.BigDecimal"%>
//实例化精确计算方法
Arith arith = null;
//将逗号替换为空再求和 common.replace((String)vector_data1.elementAt(7),",","")
double sum_qty = arith.add(sum_qty,java.lang.Double.parseDouble(common.replace((String)vector_data1.elementAt(7),",","")));
//转为字符串
String str_sum_qty1=new BigDecimal(new java.text.DecimalFormat("############.000").format(sum_qty1)).toString();
(3)将字符串转换成逗号分割的形式
----------------------------- Money.java ----start--------------------------------------
/*
* 创建日期 2007-4-26
* 把字符串用逗号分割
*/
package com.ysusoft.util.common;
public class Money {
private static final int DEF_DIV_SCALE = 3;
private Money() {
}
public static String parseMoney(String str1) {
int len=str1.length();
int k = 0;
int m = 0;
int dot = 0;
int start = 0;
String str_dot="";
String str_start="";
for(k=1;k<len;k++)
{
if(str1.substring(k,k+1).equals("."))
{
dot=k+1;
break;
}
}
start=(dot-1)%DEF_DIV_SCALE;
if(start==0)
{
str_start="";
}
else
{
str_start=str1.substring(0,start)+",";
}
m=0;
for(k=start;k<dot;k+=DEF_DIV_SCALE)
{
str_start+=str1.substring(k,k+DEF_DIV_SCALE)+",";
m++;
}
if(start==0)
{
str_start=str_start.substring(0,dot+m-3);
}
else
{
str_start=str_start.substring(0,dot+m-2);
}
str_dot=str1.substring(dot,len);
str1=str_start+"."+str_dot;
return str1;
}
};
----------------------------- Money.java ----start--------------------------------------
程序中调用
<%@ page import="com.ysusoft.util.common.Money"%>
str_sum_qty1= money.parseMoney(str_sum_qty1);
显示
<td nowrap bgcolor="#FFFFFF" align="right"><%=str_sum_qty1%></td>
一、将数据库中的数字转化为金额(逗号分割的形式)
convert(varchar,cast(amt as money),1)
二、求汇总量
1.大数运算
(1)大数运算类
----------------------------- Arith.java ----strat--------------------------------------
/*
* 创建日期 2004-10-14
*
* 如果需要精确计算,非要用String来够造BigDecimal不可
*/
package com.ysusoft.util.common;
/**
* @author Jstar
*
*
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
import java.math.BigDecimal;
/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点数运算,包括加减乘除和四舍五入。
*/
public class Arith {
//默认除法运算精度
private static final int DEF_DIV_SCALE = 10;
//这个类不能实例化
private Arith() {
}
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1, double v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
};
----------------------------- Arith.java ----end--------------------------------------
(2)程序中调用
//所有数值格式的抽象基类NumberFormat 的格式化十进制数值的具体子类
<%@ page import="java.text.DecimalFormat" %>
//Arith的路径
<%@ page import="com.ysusoft.util.common.Arith"%>
// 不可变的、任意精度的带符号的十进制数
<%@ page import="java.math.BigDecimal"%>
//实例化精确计算方法
Arith arith = null;
//将逗号替换为空再求和 common.replace((String)vector_data1.elementAt(7),",","")
double sum_qty = arith.add(sum_qty,java.lang.Double.parseDouble(common.replace((String)vector_data1.elementAt(7),",","")));
//转为字符串
String str_sum_qty1=new BigDecimal(new java.text.DecimalFormat("############.000").format(sum_qty1)).toString();
(3)将字符串转换成逗号分割的形式
----------------------------- Money.java ----start--------------------------------------
/*
* 创建日期 2007-4-26
* 把字符串用逗号分割
*/
package com.ysusoft.util.common;
public class Money {
private static final int DEF_DIV_SCALE = 3;
private Money() {
}
public static String parseMoney(String str1) {
int len=str1.length();
int k = 0;
int m = 0;
int dot = 0;
int start = 0;
String str_dot="";
String str_start="";
for(k=1;k<len;k++)
{
if(str1.substring(k,k+1).equals("."))
{
dot=k+1;
break;
}
}
start=(dot-1)%DEF_DIV_SCALE;
if(start==0)
{
str_start="";
}
else
{
str_start=str1.substring(0,start)+",";
}
m=0;
for(k=start;k<dot;k+=DEF_DIV_SCALE)
{
str_start+=str1.substring(k,k+DEF_DIV_SCALE)+",";
m++;
}
if(start==0)
{
str_start=str_start.substring(0,dot+m-3);
}
else
{
str_start=str_start.substring(0,dot+m-2);
}
str_dot=str1.substring(dot,len);
str1=str_start+"."+str_dot;
return str1;
}
};
----------------------------- Money.java ----start--------------------------------------
程序中调用
<%@ page import="com.ysusoft.util.common.Money"%>
str_sum_qty1= money.parseMoney(str_sum_qty1);
显示
<td nowrap bgcolor="#FFFFFF" align="right"><%=str_sum_qty1%></td>
发表评论
-
TilesRequestProcessor - Tiles definition factory found for request processor ''
2011-11-03 15:39 2507TilesRequestProcessor - T ... -
jar包查询网站 非常好用!
2009-12-28 11:47 13399java jar包查询 根据类查询所在的java包 http ... -
tomcat 启动错误 java.lang.UnsupportedClassVersionError: Bad version number in .class
2009-11-27 08:53 2260请访问http://ddgrow.com/bad-versio ... -
arrayToString
2009-04-07 09:01 1425原文:http://leepoint.net/notes-ja ... -
native2ascii
2009-04-02 12:00 1195D:\>native2ascii 中国 \u4e2d\u ... -
java swing 架构
2009-03-04 15:03 2325下面是偶尔找到的一篇 相当好的文章 ,针对 java swin ... -
红帽企业5序列号
2009-02-27 09:11 2549这是从[url]http://www.21codes.com/ ... -
中文乱码 我的总结 不断更新
2009-02-23 09:51 2310java中文乱码问题 1、jsp中文乱码 <0& ... -
websphere 数据库连接
2009-02-19 17:47 2130问个问题: 应用服务器: websphere 连接池:pr ... -
打开java控制台的方法
2009-02-10 17:10 3065D:\Program Files\Java\jre6\bin\ ... -
log4j weblogic 问题
2009-01-21 15:08 1948问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
log4j weblogic 问题
2009-01-21 15:07 0问题是这样的 最初在tomcat5.5下面开发,使用了log ... -
java.lang.NoClassDefFoundError in quartz
2008-12-24 15:35 2925quartz-1.5.2.jar tomcat5.5 当使 ... -
java 得到运行时系统中的内存信息
2008-12-19 20:54 1531这个在tomcat下面使用过,在引记录下来,以后方便查找 Ru ... -
log4j
2008-12-13 11:32 905讲解了用xml配置,还有例子,以及对 levelmin lev ... -
servlet 2.3 规范
2008-12-02 20:55 0servlet 2.3 规范 http://www.orio ... -
session 问题
2008-11-26 16:41 1005问个问题,如下: 我要在一个A系统中,通过一个弹出窗口,超链接 ... -
java 反编译工具
2008-10-08 11:03 2001从哪找到的给忘了,用起来不错,放在这里,以后找起来方便 ,有需 ... -
thinking in java 读书笔记
2008-10-06 22:09 1345记录下来,以便以后查看 thinking in java 4t ... -
RSA 算法 java版本<转>
2008-09-23 18:28 2426原文地址:http://www.cs.princeton.ed ...
相关推荐
在中文环境中,人民币的金额通常使用大写表示,以便于财务报表的规范性和防止篡改。本篇将介绍如何使用Java编程语言将人民币金额转换成大写,并且通过自定义标签库(Tag Library)在网页上显示。首先,我们来看`...
1. 财务报表:在财务报表中,需要将数字金额转换成中文大写字符,以便于显示或打印。 2. 发票系统:在发票系统中,需要将数字金额转换成中文大写字符,以便于显示或打印。 3. 电子商务系统:在电子商务系统中,需要...
* 财务系统:可以用于生成财务报表和账单。 * 电子商务平台:可以用于显示订单金额和支付金额。 * 银行系统:可以用于生成银行对账单和存款单。 使用 `SimpleMoneyFormat` 类可以轻松实现金额转换成大写的功能,...
在财务领域,为了确保金额的准确无误,通常需要将数字转化为中文大写形式,以便在会计报表和合同中使用。本篇文章主要探讨的是如何使用Java实现数字到中文金额大写的转换。 首先,`Trans2RMB.java`是这个功能的核心...
对于企业级应用而言,确保金额转换的准确性是至关重要的,这不仅关系到财务报表的合法性,也直接影响到企业的信誉和合规性。因此,在实际开发中,应充分测试各种边界情况,确保转换逻辑的健壮性和适应性。
在PB(PowerBuilder)设计财务报表的过程中,我们主要涉及到的是数据可视化、数据分析和报表生成的技巧。PowerBuilder是一款强大的客户端/服务器应用开发工具,尤其在创建数据库驱动的应用程序时表现出色,包括财务...
本文将详细介绍如何使用Ireport内置的Scriptlet功能实现将金额转换为大写的汉字表示,这对于财务报表的制作尤为重要,因为在中国,金额通常需要以中文大写的形式出现,以增加数据的准确性,防止篡改。 首先,我们要...
在处理金融数据时,为了保证准确性和规范性,通常会将金额从小写的阿拉伯数字转换为大写的汉字数字,这在财务报表、发票等正式文档中尤其常见。在JSP(JavaServer Pages)页面中实现这个功能,我们可以利用Java编程...
在这个个人财务软件项目中,Java作为基础编程语言,负责处理数据逻辑、业务规则以及与用户的交互。 【SWT】是Java中的一个GUI库,它是Java AWT(Abstract Window Toolkit)和Swing的替代品,提供了更接近操作系统...
4. 自动生成财务报表:应用程序可以按月或按年生成财务报表,展示指定时间段内的收入和支出趋势。这可能涉及到对事务数据的聚合和图表绘制,可以使用Java的日期时间API和报表库(如JFreeChart)来实现。 7. 总结和...
在IT行业中,中文金额变数字金额的转换是一个常见的需求,特别是在财务软件、数据分析以及报表生成等领域。这个过程涉及到中文字符的识别、数字的解析以及两者之间的转换规则。在这个主题下,我们可以深入探讨以下几...
根据给定的文件信息,我们将深入探讨“大小金额转化”的技术实现,主要聚焦于Java与C#中的编码实践。此话题涉及将数字金额转化为中文大写金额,这在财务、银行以及任何涉及资金报告的系统中是常见的需求。 ### Java...
这个功能通常被用于财务报表、发票系统或者其他与金钱相关的网页应用中。 标题"钱的中文和数字转换的js和事例页面"表明我们有一个JavaScript实现的函数,专门处理这种转换,并且有一个名为"index"的示例页面用于...
【Java项目:飞机订票系统】是一个基于Java技术栈,结合Swing图形用户界面和Oracle数据库的实用系统,主要用于模拟并实现机票预订的各种业务流程。该系统覆盖了多个关键功能模块,包括: 1. **机票查询**:用户可以...
4. **报表与分析**:生成图表展示收支趋势,帮助用户了解财务状况,如饼图展示支出比例,折线图显示收入变化。 5. **提醒与通知**:当账单到期或超出预算时,系统可以通过弹窗或邮件提醒用户。 为了实现这些功能,...
【Java Swing个人消费管理系统】是基于Java 2 Standard Edition (Java 2SE) 平台开发的一款用户友好的财务工具,旨在帮助用户管理和追踪个人消费情况。它利用Swing库来构建图形用户界面(GUI),使得操作直观且易于...
11、全中文界面,针对中国式报表进行了很多专门实现,如:表格报表、财务金额线、大写金额、发票圈叉图标、负数红字、多层表头等。很多在国外报表工具中很难实现的功能都可以轻易实现。 12、提供丰富交互事件,轻松...
【Java家庭收支器系统】是一个基于Java编程语言开发的小型桌面应用程序,主要目的是帮助用户管理和追踪他们的日常家庭财务状况。这个系统集成了手动添加监听器的功能,使得用户在交互过程中可以更加灵活地处理收支...
在这个项目中,你将学习如何将阿拉伯数字转换为银行数字,这是一个常见的需求,比如在财务报表或发票中,为了美观和规范,通常会使用银行数字格式来显示金额。例如,1234会被显示为"一千二百三十四"。 银行数字转换...
【班费管理系统】是基于Java编程语言开发的一款实用软件,主要目标是协助班级进行财务管理,规范班费收支,提高管理效率。在这个系统中,Java语言以其稳定性和跨平台性成为了首选开发工具,使得该系统能在多种操作...