public class NumberHelper {
private static Log logger = LogFactory.getLog(NumberHelper.class);
/**
* 将源数字格式化为指定的长度,不足的位数在前面补零,如果长度小于源数字的长度返回原始数字
* 适用于在产生指定长度的流水号时使用
*
* @param source
* @return
*/
public static String number2char(int source, int length) {
try{
String module = new String();
for (int i=0; i<length; i++){
module += "0";
}
DecimalFormat format = new DecimalFormat(module);
return format.format(source);
} catch (Exception e){
logger.error("源数字或指定长度非法", e);
e.printStackTrace();
return null;
}
}
/**
* 将百分比格式化为数字表示,默认使用四舍五入的算法不舍去小数位数
*
* @param source 百分比格式的数字
* @return
*/
public static Double percent2number(double source){
try{
BigDecimal big = new BigDecimal(source);
return big.divide(new BigDecimal(100)).doubleValue();
} catch (Exception e){
logger.error("将百分比格式化为数字表示出现错误", e);
e.printStackTrace();
return null;
}
}
/**
* 将百分比格式化为数字表示,默认使用四舍五入的算法并保留指定位数的小数
*
* @param source 百分比格式的数字
* @param length 小数位数
* @return
*/
public static double percent2number(double source, int length){
try{
BigDecimal big = new BigDecimal(source);
return big.divide(new BigDecimal(100), length, RoundingMode.HALF_UP).doubleValue();
} catch (Exception e){
logger.error("将百分比格式化为数字表示出现错误", e);
e.printStackTrace();
return 0;
}
}
/**
* 将两个数字相除并返回百分格式
*
* @param dividend 被除数
* @param divisor 除数
* @return 带%号的字符串
*/
public static String divide2Percent(int dividend, int divisor){
return number2percent(divide(dividend, divisor));
}
/**
* 将数字格式化为百分比表示
*
* @param source
* @return
*/
public static String number2percent(double source){
try{
DecimalFormat format = new DecimalFormat("#.##%");
return format.format(source);
} catch (Exception e){
logger.error("将数字格式化为百分比表示出现错误", e);
e.printStackTrace();
return null;
}
}
/**
* 两个整数相除保留两位小数
*
* @param dividend 被除数
* @param divisor 除数
* @return
*/
public static Double divide(int dividend, int divisor){
return divide(dividend, divisor, 2);
}
/**
* 两个整数相除保留指定位数的小数
*
* @param dividend 被除数
* @param divisor 除数
* @param length 保留小数位数的长度
* @return
*/
public static Double divide(int dividend, int divisor, int length){
try{
if (dividend == 0){
return 0D;
}
BigDecimal big = new BigDecimal(divisor);
double d = big.divide(new BigDecimal(dividend), length, RoundingMode.HALF_UP).doubleValue();
return d;
} catch (Exception e){
logger.error("数字相除发生错误", e);
e.printStackTrace();
return null;
}
}
/**
* 将double数据保留指定位数的小数
* @param length 保留小数位数的长度
* @return
*/
public static Double divide(double source, int length){
try{
if (source == 0){
return 0D;
}
BigDecimal big = new BigDecimal(source);
double d = big.setScale(length, RoundingMode.HALF_UP).doubleValue();
return d;
} catch (Exception e){
logger.error("保留指定位数的小数发生错误", e);
e.printStackTrace();
return null;
}
}
/**
* 将double数据保留指定位数的小数
* @param length 保留小数位数的长度,小数位数不够,以0补全。
* 支持科学计算法
* @return
*/
public static String divideToString(double source, int length){
BigDecimal big = new BigDecimal(source);
return big.setScale(length, RoundingMode.HALF_UP).toString();
}
/**
* 将String数据保留指定位数的小数
* @param length 保留小数位数的长度,小数位数不够,以0补全。
* 支持科学计算法
* @return
*/
public static String divideToString(String source, int length){
BigDecimal big = new BigDecimal(source);
return big.setScale(length, RoundingMode.HALF_UP).toString();
}
public static void main(String[] args){
System.out.print(divideToString("1.23E4",5));
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaoping8411/archive/2010/04/02/5446335.aspx
分享到:
相关推荐
字符串操作 // 检查字符串中是否包含某些字符串 Str::contains($haystack, $needles) // 检查字符串是否以某些字符串结尾 Str::endsWith($haystack, $needles) // 获取指定长度的随机字母数字组合的字符串 Str::...
、数字,如果为空其后数据不发送。同一行中数据依次发送,遇到单 元格为空时为止。 使用技巧:发送Excel中的数据提供发送范围选择、循环发送或 设定发送次数、设定发送间隔功能,在发送过程中以上选项都可实时 动态...
提示:监控下单和定时抢购互换的时候要先停止,再进行下一步操作。 如何获取商品编号: 某宝的:手机辅助链接粘贴出来,或者电脑网页看。链接里的“id=”后边的一串数字就是商品编号。 例:...
Hathi Download Helpe是一款非常专业的hathitrust数字图书馆下载工具,该软件能帮你将hathitrust数字图书馆网站上的图书信息下载到本地上,操作简单,方便又实用,需要的朋友可以前来本站下载。 软件功能 支持用户...
文章内容的纯文本进行简单标识,就可由本软件根据模板快速生成整个网站的内容,可使更 新效率大大提高,而且避免了手工更新容易出现错误的问题,是各中小报纸杂志社制作、更 新自已的数字版网站的好助手。...
5.选择“开始数字”,工具会从制定数字开始命名,例如输入16,则文件命名为为:***16.**,***17.**,***18.**...。 6.选择“补齐位数”,工具会补齐数字位数。例如:输入3,则文件重命名为:***001.**,***002.**,*...
2013[慧创]研修网学习挂机助手V4.6免费版 【使用声明】 参加过研修网的远程培训学习时,每学习一段时间就必须做加数计算题且正确之后才能更新学习时间,或者每学习一段时间,就输入4位数字验证码,很是烦人。所以...
数学建模软件助手,让人更懂数学建模。操作很简单,很容易。
这份资料不仅理论丰富、实践性强,而且具有很高的可操作性,对于希望在数字经济时代保持领先的企业决策者和管理者来说,是一份不可多得的参考宝典。通过阅读这份资料,企业能够获得系统化的转型思路,掌握关键的转型...
(2)Windows Media Player 11(11.0.5721.5280)或更高版本(播放器更新会进行操作系统正版验证,非正版更新不了Windows Media Player 11); (3)Internet Explorer 6.0或更高版本; (4)Adobe Flash Player ...
解决方案:卸载删除原来的游戏,重新下载安装即可助手设置键盘有以下所述的三种操作方式: 1、单击鼠标左键,这种设置方式通过在游戏屏幕上对应位置或者指定需要的位置,单击鼠标左键设置按键键位,达到的效果跟...
最后,该解决方案将提供一系列的案例研究和最佳实践,帮助观众理解理论与实际操作的结合,以及如何根据自身乡镇的特点定制化数字化转型策略。总而言之,这个PPT格式的数字乡镇综合解决方案是一份宝贵的资源,它不仅...
应用实例有交流数字电压表、电力周波表、闪光报警器、移动式客房控制器、不间断电源UPS控制器、均匀分布随机数程序、4阶IIR数字滤波器程序、快速傅里叶变换程序、即热式电热水器模糊逻辑温控器、汉字热敏微型打印机...
即可以对接收到的数据直接发送操控命令来操作数据。上位机可以接收下位机的信号。下位机是一个控制器,是直接控制设备获取设备状况的计算机。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号...
企业数字化转型物流信息化咨询项目规划方案2.0是一个针对现代企业在数字化浪潮中如何有效转型的综合解决方案。本方案以117页的PPT文档形式呈现,内容涵盖企业物流信息化的核心要素,...问问助手:职业规划助手重新回答||
无论是对于数据治理的策略梳理,还是对于数据资产的价值挖掘,这份资料都能够提供具有操作性的指导和建议。其内容涵盖了数据收集、存储、管理、分析和应用等多个环节,旨在帮助企业构建起一个全面、高效、智能的...
它可以使智能新冠疫苗接种助手管理上操作简单,成功率高,使网上智能新冠疫苗接种助手的管理向一个更高层次前进。 本系统尝试使用ssm在网上架构一个动态的智能新冠疫苗接种助手管理系统,以使每一用户在家就能通过...
为策安全,当前版本这个数字不允许低于五秒 声音提示 勾选的话,当有票可定时,助手会放歌骚扰你 仅座票 快速设置席别过滤按钮,点击后可快速勾选所有的座票,包括硬座软座一等座等等 仅卧票 快速设置席别过滤按钮,...
通用验证包括姓名验证、身份证号验证、中文验证、英文验证、数字验证、日期验证、电子信箱验证、电话号码验证八大类型验证。 辅助功能实现了可视化、简单化的EXCEL常用工作的特殊操作。 扩展功能为在EXCEL环境内...
SSM项目使命召唤游戏助手的设计与实现_pzbe0.zip是一个基于Spring、Spring MVC和MyBatis(SSM)框架开发的...此外,由于电子竞技和游戏辅助工具在当代数字娱乐中占有重要地位,这类项目具有较高的市场需求和应用潜力。