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();
             
        }
         
    }
  • 相关阅读:
    ASP.NET AJAX Sys未定义的解决方法
    网页简繁体转换
    asp.net2.0中TreeView不刷新获得节点值
    异常详细信息: System.Runtime.InteropServices.COMException: 无效的类别字符串
    HDOJ1233 还是畅通工程[Prim算法||Kruskal算法]
    Kruskal/Prim/Dijkstra模板
    HDOJ3790 最短路径问题[Dijkstra算法||SPFA]
    HDOJ1285 确定比赛名次[拓扑排序]
    HDOJ1162 Eddy's picture[求最短路prim||kruskal算法]
    HDOJ1213 How Many Tables[并查集入门]
  • 原文地址:https://www.cnblogs.com/liuyanzeng/p/5861162.html
Copyright © 2011-2022 走看看