Java中涉及到金钱计算方法

java中涉及到浮点计算,就会有误差,

float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal

public class MoneyTest{  public static void main(String[] args) {  System.out.println(2.00 - 1.10);// 0.8999999999999999  System.out.println(2.00D - 1.10D);// 0.8999999999999999  System.out.println(2.00F - 1.10F);// 0.9  System.out.println(Double.toString(2.00D));// 2.0  System.out.println(BigDecimal.valueOf(2.00).subtract(BigDecimal.valueOf(1.10)));// 0.9  System.out.println(BigDecimal.valueOf(2.00F).subtract(BigDecimal.valueOf(1.10F)));// 0.899999976158142  System.out.println(BigDecimal.valueOf(2.00D).subtract(BigDecimal.valueOf(1.10D)));// 0.9  System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));// 0.90  }  }
在这里,我介绍一种方便计算的方式:将单位 : 元 -> 分

这时,计算时 都是整型在参与计算,大大减少使用BigDecimal计算时带来的麻烦。

	/*** 将元变成分 如 0.01元 变成 1分* * @param str*            金额(元)* @return*/public static String moneyYuanToFen(String str) {
Double num = Double.parseDouble(str);
int result = (int) (num * 100);
return String.valueOf(result);
}/*** 将分变成元 100分 -> 1元* * @param amount*            金额(分)* @return*/public static String moneyFenToYuan(Long amount) {return new BigDecimal(amount).divide(new BigDecimal(100)).setScale(2).toString();}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 除了可以用js跟踪用户信息外,如果不用js,使用纯css怎么做呢?

[css] 除了可以用js跟踪用户信息外,如果不用js,使用纯css怎么做呢? 可以利用 css 的伪类 :hover :active :focus 之类的监听用户行为,然后给指定的url 发送请求。#link:active::after {content:url(xxx/xxx?active);}个人简介 …

elasticSearch的安装步骤~

Elasticsearch是一个实时的分布式搜索和分析引擎,关于elasticsearch和solr的比较和使用场景请自行百度。 1. 机器环境 Centos6.5 jdk-8u121-linux-x64.tar.gz elasticsearch-5.2.2.tar.gz 2. 配置(1). 配置静态ip (2). 进入cd /usr/local/src 在src目录下创建文件…

[css] 当拿到一个新的项目,让你对这个项目的css做下架构设计,你该如何下手?

[css] 当拿到一个新的项目,让你对这个项目的css做下架构设计,你该如何下手? 公共变量(主题色/主要空隙/主要字号字体等) 编译器(scss/less/postcss/stylus) 自适应方案(栅格/rem/vw…

elasticSearch5.x与mysql数据库同步

ElasticSearch安装就不说了上一篇有说! 安装logstash 官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html 1.下载公共密钥rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch2.添加yum源vim /etc/yum.rep…

划分树简单介绍

我感觉划分树的基本思想是二分和归并排序,分为建树和查询两个部分。 1、建树 递归建树,以中值为界,将序列划分成左右两部分,直到分到每个点为止。同时,在建树的过程中,记录下每一层进入左区间的数的个数&am…

[css] 使用css实现霓虹灯效果

[css] 使用css实现霓虹灯效果 <div class"neon">Good evening, and good night!</div>body {display: flex;height: 100vh;justify-content: center;align-items: center;text-align: center;background: black;}.neon {color: #cce7f8;font-size: 2.5re…

JZOJ5776. 【NOIP2008模拟】小x游世界树

题目&#xff1a;【NOIP2008模拟】小x游世界树&#xff1b; 题目的附加题解给的很清楚&#xff0c;这里只给一个代码&#xff1b; 1 #include<iostream>2 #include<cstdio>3 #include<cstring>4 #include<cmath>5 #include<algorithm>6 #define…

[css] :placeholder-shown和:focus-within这两个伪类你有使用过吗?说说看

[css] :placeholder-shown和:focus-within这两个伪类你有使用过吗&#xff1f;说说看 :focus-within 是一个CSS 伪类 &#xff0c;表示一个元素获得焦点&#xff0c;或&#xff0c;该元素的后代元素获得焦点。换句话说&#xff0c;元素自身或者它的某个后代匹配 :focus 伪类。…

elasticsearch解决同步删除数据库中不存在的数据

摘要: jdbc-input-plugin 只能实现数据库的追加&#xff0c;对于 elasticsearch 增量写入&#xff0c;但经常jdbc源一端的数据库可能会做数据库删除或者更新操作。这样一来数据库与搜索引擎的数据库就出现了不对称的情况。当然你如果有开发团队可以写程序在删除或者更新的时候同…

【BZOJ1048】分割矩阵(记忆化搜索,动态规划)

【BZOJ1048】分割矩阵&#xff08;记忆化搜索&#xff0c;动态规划&#xff09; 题面 BZOJ洛谷 题解 一个很简单的\(dp\)&#xff0c;写成记忆化搜索的形式的挺不错的。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #in…

[css] 使用css实现气泡框的效果

[css] 使用css实现气泡框的效果 <!DOCTYPE html> <html lang"en"><head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title></title> …

JVM内存原理及高级特性

今天看了一篇文章&#xff0c;对JVM内存机制&#xff0c;讲的比较细致&#xff0c;决定转载过来 1、JVM 体系结构 线程共享内存 可以被所有线程共享的区域&#xff0c;包括堆区、方法区、运行时常量池。 1.1 堆&#xff08;Heap&#xff09; 大多数时候&#xff0c;Java 堆…

[css] 如何使用伪元素实现增大点击热区来增加用户体验?

[css] 如何使用伪元素实现增大点击热区来增加用户体验&#xff1f; .extend-via-pseudo-elem {position: relative; }.extend-via-pseudo-elem::before {content: ;position: absolute;top: -20px;right: -20px;bottom: -20px;left: -20px; }个人简介 我是歌谣&#xff0c;欢…

今天读了JDK1.8源码,知道了并行迭代器Spliterator

在JDK1.8的ArrayList里面偶然看到了这个内部类&#xff0c;同时对比了1.7的版本&#xff0c;发现1.7并没有这后面的东西&#xff0c; 随着好奇心&#xff0c;就搜了一下下&#xff0c;发现很有意思~ 也查了一些资料&#xff0c;如下总结&#xff1a; Spliterator是什么&#…

牛客网挑战赛24 青蛙(BFS)

链接&#xff1a;https://www.nowcoder.com/acm/contest/157/E来源&#xff1a;牛客网 有一只可爱的老青蛙&#xff0c;在路的另一端发现了一个黑的东西&#xff0c;想过去一探究竟。于是便开始踏上了旅途 一直这个小路上有很多的隧道&#xff0c;从隧道的a进入&#xff0c;会从…

[css] 如何使用css显示a链接的url?

[css] 如何使用css显示a链接的url&#xff1f; .some-a-tag:before {content: attr(href); }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

JAVA手写ArrayList以及LinkedList

手写记录一下~ 顶级接口List public interface List<E> {//返回线性表的大小public int getSize();//判断线性表中是否为空public boolean isEmpty();//判断线性表中是否包含元素oboolean contains(E o);//在线性表中查找元素o&#xff0c;若成功找到&#xff0c;返回其…

[css] css中的url()要不要加引号?说说你的理解

[css] css中的url()要不要加引号&#xff1f;说说你的理解 可以加&#xff0c;也可以不加。这个跟html标签的属性书写可以加引号也可以不加引号是一样的道理&#xff0c;当然如果属性中含有特殊字符比如空格则需要加空格&#xff0c;否则会引起浏览器解析错误。如果想养成良好…

JDK源码学习路线~每天学一点~每天进步一点点

很多java开发的小伙伴都会阅读jdk源码&#xff0c;然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。 标题为包名&#xff0c;后面序号为优先级1-4&#xff0c;优先级递减 1、java.lang 1) Object 1 2) String 1 3) AbstractStringBuilder 1 4) StringBuff…

[css] 使用css写一个垂直翻转图片的效果

[css] 使用css写一个垂直翻转图片的效果 transform: rotateX(180deg); /* 垂直镜像翻转 */个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题