加减法计算器-java
由于经常进行较大数据的加减法计算,好多计算器都是转换成科学技术法的,所以自己用java写了一个
功能如下:
1,可以输入多个带千位分隔符的数字,进行加减法计算
2,结果展示带千位分隔符
3,结果展示不是科学计数法的形式
代码如下:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
public class Calculator {
// 提供精确的加法运算
public static String add(String add1, String... add2) {
String v1;
try {
// 去掉千位分割符
v1 = new DecimalFormat().parse(add1).toString();
// 用字符串构造BigDecimal
BigDecimal sum = new BigDecimal(v1);
for (String v2 : add2) {
v2 = new DecimalFormat().parse(v2).toString();
sum = sum.add(new BigDecimal(v2));
}
// 添加千位分隔符,保留两位小数
DecimalFormat df = new DecimalFormat("#,###.00");
String dfSum = df.format(sum);
return dfSum;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
// 精确的减法运算
public static String sub(String sub1, String... sub2) {
String v1;
try {
// 去掉千位分割符
v1 = new DecimalFormat().parse(sub1).toString();
// 用字符串构造BigDecimal
BigDecimal sum = new BigDecimal(v1);
// 减法计算
for (String v2 : sub2) {
v2 = new DecimalFormat().parse(v2).toString();
sum = sum.subtract(new BigDecimal(v2));
}
// 添加千位分隔符,保留两位小数
DecimalFormat df = new DecimalFormat("#,###.00");
String dfSum = df.format(sum);
return dfSum;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(Calculator.sub("6,300,000,000.02", "2,391,000,050.00","1"));
System.out.println("-----------");
System.out.println(Calculator.add("3,908,999,949.02", "2,391,000,050.00", "1.00"));
}
}
加减法计算器-java的更多相关文章
- JDK问题--linux下java unrecognized class file version错误的解决
linux下java unrecognized class file version错误的解决 环境:RedHat Linux Enterprise 5.4 问题:java.sun.com下载jdk1 ...
- java调用monkeyrunner(亲测绝对可行)
我自己试验了下和官方的API编写不太一样,老别扭了,建议还是用Python写吧 昨天在网上查了一下一天,都是转来贴别人的,真正敲的很少,我真不知道转的大侠你们自己敲了么? 先截一段不负责任的blog图 ...
- 【aliyun】学java,看这里,不迷茫!1460道Java热门问题
阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 ...
- 大话设计模式C++版——工厂方法模式
工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览<大话设计模式C++版——简单工厂模式>.在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发—封闭原则,其主 ...
- 用PHP写一个最简单的解释器Part4(写一个最简单的脚本语言)
好吧!我承认我想标题党了.大家对解释器的吸引,绝对没有自己动手写一个脚本语言更有吸引力.不过如果看到标题过来的,可能也是 我承认,之前收藏的减肥视频,我都是这样对待他们的. 不过我还是相信很多程序猿o ...
- Golang 中的 面向对象: 方法, 类, 方法继承, 接口, 多态的简单描述与实现
前言: Golang 相似与C语言, 基础语法与C基本一致,除了广受争议的 左花括号 必须与代码同行的问题, 别的基本差不多; 学会了C, 基本上万变不离其宗, 现在的高级语言身上都能看到C的影子; ...
- 用Hutton32玩转数字电路(一):逻辑门
最近看到有人用Minecraft里面的红石电路制作出了计算器,还有一篇神文:<基于Minecraft实现的计算机工程>,视频在此,好像还能算浮点数.三角函数.我对红石不是太了解,那能不能用 ...
- Weblogic CVE-2020-2551漏洞复现&CS实战利用
Weblogic CVE-2020-2551漏洞复现 Weblogic IIOP 反序列化 漏洞原理 https://www.anquanke.com/post/id/199227#h3-7 http ...
- Programiz 中文系列教程·翻译完成
原文:Programiz 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 Programiz C ...
随机推荐
- Python数据分析1------数据存取
1.CSV格式数据: 1.1普通读取和保存 可以以纯文本形式打开,可以保存多条记录,每条记录的数据之间默认用逗号来分隔,csv就是逗号分割值的英文缩写. 保存为csv文件: import pandas ...
- AOJ 2224 Save your cats( 最小生成树 )
链接:传送门 题意:有个女巫把猫全部抓走放在一个由 n 个木桩(xi,yi),m 个篱笆(起点终点木桩的编号)围成的法术领域内,我们必须用圣水才能将篱笆打开,然而圣水非常贵,所以我们尽量想降低花费来解 ...
- POJ 2395 Out of Hay( 最小生成树 )
链接:传送门 题意:求最小生成树中的权值最大边 /************************************************************************* & ...
- CentOS 笔记(六) 历史命令 自动补充
history #出现历史的命令 #执行具体的一条历史命令 !458 ②安装自动补充功能 yum install -y bash-completion #输入命令 按Tab 会显示所有内容 syste ...
- CentOS6.8安装
VMware下CentOS 6.8安装配置 简述 Linux的安装方法有很多种,下面,我们主要以镜像安装为例,介绍CentOS的安装过程及相关的参数设置,详细步骤如下. CentOS安装配置 ...
- Fastdfs环境搭建
环境准备 使用的系统软件 名称 说明 centos 7.x libfatscommon FastDFS分离出的一些公用函数包 FastDFS FastDFS本体 fastdfs-nginx-modul ...
- Linux设备驱动--块设备(三)之程序设计(转)
http://blog.csdn.net/jianchi88/article/details/7212701 块设备驱动注册与注销 块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数 ...
- C++异常与析构函数及构造函数
析构函数不要抛出异常. 构造函数可以抛出异常,但是要谨慎. 原因下面这篇文章讲的不错,转载如下: http://jarfield.iteye.com/blog/811703 写Java代码的时候,遇到 ...
- 小米2S电池电量用尽充电无法开机解决方法
背景: 昨晚睡觉前关机,记得电量还有百分之七八十,但早上起床后,指示灯一直红灯闪烁.按开机键和其它键都没反应! ! 解决方法: 扣下电池,用万能充冲电,略微多冲一会,由于 ...
- linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库
linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库 创建静态库:ar -rcs test.a *.o查看静态库:ar -tv test.a解压静态库:ar -x test.a 查 ...