一个简单的元转分分转元工具类,是使用了BigDecimal来对金额高精度计算。BigDecimal的介绍这里就不展开了。直接上代码:

AmountUtil.javapackage com.weizhixi.test;

import java.math.BigDecimal;

/**

* 金额工具类

* Created by cxq on 2018/1/4.

*/

public class AmountUtil {

/**

* 分转元(除以100)四舍五入,保留2位小数

* @param amount 金额 元

* @return

*/

public static String changeF2Y(String amount){

return new BigDecimal(amount).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toString();

}

/**

* 元转分(乘以100)

* @param amount 金额 分(支持大数字,16位以上)

* @return

*/

public static String changeY2F(String amount){

return new BigDecimal(amount).multiply(new BigDecimal(100)).toString();

}

public static void main(String[] arg){

//普通数值

System.out.println(changeF2Y("101"));

//1.01

System.out.println(changeY2F("101"));

//10100

//超16位以上数值

System.out.println(changeF2Y("34353452345768679845234534343445"));

//343534523457686798452345343434.45

System.out.println(changeY2F("32123134757697845454423534232323"));

//3212313475769784545442353423232300

}

}

multiply(BigDecimal)

BigDecimal对象中的值相乘,返回BigDecimal对象

divide(BigDecimal)

BigDecimal对象中的值相除,返回BigDecimal对象

setScale(scale, BigDecimal.ROUND_HALF_UP)

setScale()方法用于格式化小数点

scale 精度(保留几位小数)

ROUND_HALF_UP 四舍五入

需要使用double,要注意:

1、请使用 BigDecimal.valueOf(amount) 进行转换,不能直接new BigDecimal(amount),这样会出现精度问题。

2、以double入参,以double精度为准。

正确示例:public static String changeF2Y(double amount){

return BigDecimal.valueOf(amount).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toString();

}

原创文章,转载请注明出处:https://www.weizhixi.com/article/49.html

java 分转元_java元转分分转元相关推荐

  1. java 分转换元_java 金钱元和分互相转换

    import java.math.BigDecimal; import java.text.DecimalFormat; /** * @ProjectName: LieIdle * @Package: ...

  2. java 金额转换 元转分 分转元

    import java.math.BigDecimal;/*** 作 者:lianxin*/ public class MoneyUtils {/*** 商户金额单位对应支付定单金额单位(元对应分)比 ...

  3. 7-38 支票面额 (15 分) 一个采购员去银行兑换一张y元f分的支票,结果出纳员错给f元y分。采购员用去n分后发觉有错,余额有2y元2f分,问支票面额?PTA:中M2021春C、Java入门练习I

    7-38 支票面额 (15 分) 一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分.采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少? 输入格式: 输 ...

  4. java 万元转元_java中金额元转万元工具类的实例

    我就废话不多说了,大家还是直接看代码吧~ public static void main(string[] args) { // 具体的金额(单位元) string value = "880 ...

  5. 组合问题,用1元纸币兑换1分,2分和5分硬币,要求兑换总数为50枚,问组合方式多少种?

    组合问题,用1元纸币兑换1分,2分和5分硬币,要求兑换总数为50枚,问组合方式多少种? JavaScript编写 function hm2(){var num=100;var sum=0;var a= ...

  6. 编程趣事 100元x100元是否等于10000分x10000分

    在软件开发过程中,接口联调是实现项目交互无法避免的,在联调过程中会出现一些数据之间的转换的问题,例如基本数据类型的转换.换算单位之间的转换等等,今天我们就通过金额分与元做切入点,聊一聊换算单位之间的转 ...

  7. 5.2.4 js循环小练习02 6 做学院评奖系统​ 如果数学成绩大于80分并且语文成绩大于80分,获奖学金500元。​如果数学小于30并且语文小于30分,输出重修。 两个数a、b,如果a能被b整除

    文章目录 1 做学院评奖系统​ 如果数学成绩大于80分并且语文成绩大于80分,获奖学金500元.​ 如果数学小于30并且语文小于30分,输出重修. 2 两个数a.b,如果a能被b整除或a加b大于100 ...

  8. 整钱换零钱问题。把1元换成1分、2分、5分的硬币,共有多少种不同的换法(C语言)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验体验] 1.整钱换零钱问题.把1元换成1分.2分.5分的硬币,共有多少种不同的换法. 提示:设5分币个数为i(0-20) ...

  9. 分省份邮电业务总量统计(亿元)2011-2019

    数据集名称:分省份邮电业务总量统计(亿元) 时间范围:2011-2019年 数据来源:各省统计年鉴 相关说明: 邮电业务总量是以价值量形式表现的邮电通信企业为社会提供各类邮电通信服务的总数量.邮电业务 ...

最新文章

  1. EPOLLOUT 事件的意义 以及 处理示例
  2. 服务器运行码用户名a多少呢,如何以非根用户身份运行gunicorn/a python应用服务器?...
  3. 技术开源出现“逆趋势”,中国如何下好 AI Open 这盘棋
  4. 用JS脚本进行页面元素控制
  5. HBase单机模式部署
  6. 【kAriOJ】离散数学春季学期编程测试 1
  7. Ubuntu 16.04调节屏幕显示字体大小
  8. windchill开发之创建对象
  9. 今天晴朗,但是由于晚上睡眠不是很好就头昏眼花
  10. 一个物理学家学习Windows编程的感受
  11. Java并发编程—JUC的Lock锁
  12. 二叉树层次遍历c语言_[LeetCode] 107. 二叉树的层次遍历 II
  13. mysql 安全删除_mysql的binlog安全删除的一种方法
  14. 【ElasticSearch】大数据搜索选开源还是商业软件?ElasticSearch 对比 Splunk
  15. SqlServer2008卸载掉
  16. 用c语言找最大素数,C语言实现寻找大素数
  17. 如何将pdf拆分为单页?推荐这些方法
  18. html语言中标记h1代表什么意思,html中h1是什么意思
  19. 爬取古诗文网的推荐古诗
  20. 技巧 | 清理电脑垃圾

热门文章

  1. 论文笔记:SAITS: SELF-ATTENTION-BASED IMPUTATION FOR TIMESERIES
  2. 1年赋能100家环保机构,阿里云发布“青山绿水”计划
  3. matlab华侨大学,范文涛
  4. 人工智能行业每日必读(02·03)
  5. 软件插件化,大势所趋新势力
  6. 实时数据库和关系数据库的区别
  7. 远程桌面服务器零售授权许可证,由于没有远程桌面授权服务器可以提供许可证...
  8. 当Myeclipse或者Eclipse出现launching client
  9. 为什么街上发传单的人会认真发完,却不把传单丢了呢?
  10. access如何设置定期报表汇总_Access如何制作复杂报表