zoukankan      html  css  js  c++  java
  • 12.编写一个Java项目,定义包,在包下定义包含main方法的类,在main方法中声明8种基本数据类型的变量并赋值,练习数据类型转换。

    注意;float虽然是4个自减,但是它的取值范围却比8个字节的long要大。

    float和double只能用来作科学计算或者是工程计算,但在商业计算中我们要用java.math.BigDecimal,通过使用BigDecimal类可以解决上述问题,实例代码如下:

    package ex;

     
    import java.math.*;
     
    public class BigDecimalDemo {
        public static void main(String[] args){
            System.out.println(ArithUtil.add(0.010.05));
            System.out.println(ArithUtil.sub(1.00.42));
            System.out.println(ArithUtil.mul(4.015100));
            System.out.println(ArithUtil.div(123.3100));
        }
    }
     
    class ArithUtil{
        private static final int DEF_DIV_SCALE=10;
         
        private ArithUtil(){}
        //相加
        public static double add(double d1,double d2){
            BigDecimal b1=new BigDecimal(Double.toString(d1));
            BigDecimal b2=new BigDecimal(Double.toString(d2));
            return b1.add(b2).doubleValue();
             
        }
        //相减
        public static double sub(double d1,double d2){
            BigDecimal b1=new BigDecimal(Double.toString(d1));
            BigDecimal b2=new BigDecimal(Double.toString(d2));
            return b1.subtract(b2).doubleValue();
             
        }
        //相乘
        public static double mul(double d1,double d2){
            BigDecimal b1=new BigDecimal(Double.toString(d1));
            BigDecimal b2=new BigDecimal(Double.toString(d2));
            return b1.multiply(b2).doubleValue();
             
        }
        //相除
        public static double div(double d1,double d2){
     
            return div(d1,d2,DEF_DIV_SCALE);
             
        }
         
        public static double div(double d1,double d2,int scale){
            if(scale<0){
                throw new IllegalArgumentException("The scale must be a positive integer or zero");
            }
            BigDecimal b1=new BigDecimal(Double.toString(d1));
            BigDecimal b2=new BigDecimal(Double.toString(d2));
            return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
             
        }
         
    }
  • 相关阅读:
    基于V8引擎的C++和JS的相互交互
    C++和JavaScript脚本的相互调用
    用VC++MFC做文本编辑器(单文档模式)
    模式识别原理(Pattern Recognition)、概念、系统、特征选择和特征
    人工智能代码搜索
    QQ聊天机器人 Delphi代码
    代码自我清除 自我加密、解密的实现
    深入理解JVM虚拟机7:JNDI,OSGI,Tomcat类加载器实现
    深入理解JVM虚拟机6:深入理解JVM类加载机制
    深入理解JVM虚拟机5:虚拟机字节码执行引擎
  • 原文地址:https://www.cnblogs.com/liuyanzeng/p/5861162.html
Copyright © 2011-2022 走看看