展开全部

使用BigDecimal并且一定要e68a84e8a2ad3231313335323631343130323136353331333361303564用String来够造。

实现方法如下:

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();

}

};

分享

本回答由电脑网络分类达人 高德宝认证

其他类似问题

2009-02-08加减乘除运算(Java)14

2010-06-22Java实现有界面的简单的两个整数之间的加减乘除运算

2009-09-21myeclipse中java的加减乘除运算1

2011-05-27用java编写计算器,,,要求加减乘除等运算。。。1

2011-09-15java中的String型怎么实现数学的加减乘除运算?10

更多关于java简单加减乘除的问题>>

为您推荐:

举报| 2009-02-24 03:00

#为什么很多走失的孩子无法找回?#

提问者采纳

import java.util.Scanner;

class MakeOperation

{

public static void main(String[] args){

Scanner input=new Scanner(System.in);

Count count=new Count();

System.out.print("请输入你要运算的第一个数:");

count.one=input.next();

System.out.print("请输入你要进行运算的运算符:");

count.fu=input.next();

System.out.print("请输入你要运算的第二个数:");

count.two=input.next();

if(count.fu.equals("+")){

count.outcome=Float.parseFloat(count.one)+Float.parseFloat(count.two)+"";

// 将字符串解析为数字,注意下如果输入的不是数字程序会报错,缺少健壮性代码 }

System.out.println(count);

}

}

class Count{

String one;

String two;

String fu;

String outcome; // 结果

public String toString(){

return one+fu+two+"="+outcome;

}

}

下面的代码修改了Count类里域的部分参数,增加了一个用于检查输入是否正确的类。

import java.util.Scanner;

class MakeOperation

{

public static void main(String[] args){

Scanner input=new Scanner(System.in);

Count count=new Count();

CheckOperation checkOpera=new CheckOperation();

System.out.print("请输入你要运算的第一个数:");

count.one=checkOpera.checkNum(input);

System.out.print("请输入你要进行运算的运算符:");

String[] operators={"+","-","*","/"};

count.fu=checkOpera.checkOperator(input,operators);

System.out.print("请输入你要运算的第二个数:");

count.two=checkOpera.checkNum(input);

if("+".equals(count.fu)){

count.outcome=count.one+count.two;

System.out.println(count);

}

}

}

class Count{

float one;

float two;

String fu;

float outcome; // 结果

public String toString(){

return one+fu+two+"="+outcome;

}

}

class CheckOperation{

/*验证数字,输错了会提示用户重新输入*/

public float checkNum(Scanner input){

float num=0f;

try {

num=Float.parseFloat(input.next());

} catch (NumberFormatException e) {

System.out.print("请输入正确的数字: ");

num=checkNum(input); //直至获取到正确的值

}

return num;

}

/*验证输入的符号是否正确*/

public String checkOperator(Scanner input,String[] operators){

String opera=null;

boolean judge=true;

opera=input.next();

for(String operator:operators){

if(operator.equals(opera)) judge=false;

}

if(judge) {

System.out.print("请输入正确的运算符: ");

opera=checkOperator(input,operators);

}

return opera;

}

}

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java 高效加减乘除_java简单加减乘除相关推荐

  1. java算软件工程_Java简单计算器的实现

    Java简易计算器的实现,供大家参考,具体内容如下 操作流程 用户通过输入要被运算的数字和运算符,进行数字的运算,例如用户输入2+2则会输出4. 加法运算截图 减法运算截图 乘法运算截图 除法运算截图 ...

  2. java可视化日历_Java简单可视化日历程序

    涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...

  3. java正则表达式爬虫_Java简单爬虫系列(3)---正则表达式和Java正则API的使用

    上一篇内容写了如何请求资源,那么资源请求下载之后我们就要对它就行解析了,解析之前我们先熟悉一下正则表达式 正则表达式在平常使用时还是很广泛的,比如说表单输入验证,验证手机号邮箱之类,Java的字符串匹 ...

  4. java swing 示例_JAVA简单Swing图形界面应用演示样例

    JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...

  5. Java zset 应用_Java简单使用redis-zset实现排行榜

    简单使用redis-zset实现排行榜 此方法实现一个根据某字段的查询次数进行排行,查询的次数越多排行越前(从大到小排序),适用于初学者 1.添加依赖 org.springframework.boot ...

  6. java五子棋教程_java 简单五子棋

    1.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目需要满足怎样的需求. 五子棋需要满足什么需求呢,首先我们要有确定打算下棋的界面,还要有实现下棋的功能,下了棋 ...

  7. java .z文件_Java简单的读写文件

    这篇随笔记录了简单的文件输入与输出,是我在学习<Java核心技术卷Ⅰ>第61页到第62页时的一些整理.只用到了极简单的方法. 文件读取 要想对文件进行读取,就需要用一个File对象构造一个 ...

  8. java高效编程_Java高效编程

    非可变类就是类的实例不能被修改的类.如String. 非可变类有很多好的存在理由非可变类更容易设计.实现和使用 不易犯错误 更安全 为了使类成为非可变的,要遵循下面5条原则不要提供任何修改对象的方法. ...

  9. java高效代码_Java工程师该如何编写高效代码?

    在调试 JS 代码时,很多人倾向于使用 alert() 或者 console.log() 方法来输出信息,正如某些 Java 程序员喜欢在调试代码时使用System.out.println() 输出信 ...

最新文章

  1. ComplexHeatmap绘制热图(一)
  2. Arch Linux 指南——安装基本系统
  3. 【高级绘图】MATLAB应用实战系列(八十)-圣诞前夜,想表白女神?教你如何用MATLAB绘制圣诞树动态图(附MATLAB代码)
  4. 节能原理 复习(能量平衡+热电联产+联合循环)
  5. MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
  6. android hide方法 末班,android 如何引用@hide(隐藏)的类,方法和常量?
  7. 替换元素节点replaceChild()
  8. (转)Hibernate的配置详解
  9. 第18天:京东网页头部制作
  10. 太阳能充电调节代码_储能管理系统对于充电站的作用
  11. 基于Linux的小项目-在线词典
  12. 禁忌搜索算法求解TSP问题python实现
  13. 日常工作记录---在虚拟机中进行slam建图
  14. 文件或目录损坏且无法读取android studio
  15. OpenGL 加载DDS文件(压缩纹理)
  16. sort()sorted()
  17. Netlogon 特权提升漏洞(CVE-2020-1472)原理分析与验证
  18. 【机器学习】有监督、无监督、自监督、半监督、弱监督的区别
  19. 空调遥控器c语言源码,51单片机格力空调遥控器设计源码
  20. 甲骨文献相关资料持续分享

热门文章

  1. 彩色手绘元宵节插画风素材图片
  2. UI图标设计素材|风格多样的图标
  3. 有了优秀的可临摹PSD分层模板|瞬间提升海报质感!
  4. APP搜索框的样式素材模板,可临摹的好素材
  5. c语言中如何让鼠标在一个窗口之外不能点击_Excel系列教程:如何自动填充单元格...
  6. python能做页面加载动画吗_HTML+CSS实现页面加载(loading)动画效果
  7. Linux面试题100道
  8. highgui java opencv_OpenCV在C Qt应用程序中的highgui
  9. vscode生成vue模板快捷键_VSCode一键生成.vue模版
  10. python可以处理的文件类型_Python学习笔记之数据类型与文件处理