double 订阅
double是一个英语单词,意为一对,一双;双重地;酷似的人;把...对折;变成两倍;增加一倍,可作形容词、副词、动词用。 展开全文
double是一个英语单词,意为一对,一双;双重地;酷似的人;把...对折;变成两倍;增加一倍,可作形容词、副词、动词用。
信息
外文名
double
意    为
一对,一双
中文名
双精度数据类型
double单词
形容词a. [Z]1.两倍的;加倍的2.双的;成双的;双层的3.两人用的,双人的副词ad.1.双倍地;加倍地2.双重地名词n.1.两倍(数或量),加倍[C][U]2.酷似的人[C]3.替角演员;替身[C]及物动词vt.1.使加倍;是...的两倍2.把...对折[(+back/over)];握紧(拳头)不及物动词vi.1.变成两倍;增加一倍
收起全文
精华内容
参与话题
问答
  • Double.parseDouble()与Double.valueOf()区别

    万次阅读 多人点赞 2016-11-16 13:28:34
    Double.parseDouble方法是把数字类型的字符串,转换成double类型Double.valueOf方法是把数字类型的字符串,转换成Double类型 double a = 0.009; String b = "1993"; double parseDouble = Double.parseDouble(b); ...

    Double.parseDouble方法是把数字类型的字符串,转换成double类型

    Double.valueOf方法是把数字类型的字符串,转换成Double类型

    		double a = 0.009;
    		String b = "1993";
    		
    		double parseDouble = Double.parseDouble(b);
    		System.out.println(parseDouble);
    		Double valueOf = Double.valueOf(a); 
    		Double valueOf2 = Double.valueOf(b); //1993.0
    		System.out.println(valueOf);//0.009
    		System.out.println(valueOf2);//1993.0
    

    结果是:

    1993.0
    0.009
    1993.0
    

    可以看出大体是没有任何区别,就是返回值的类型区别!


    Double.parseDouble()方法的源码:

    public static double parseDouble(String s) throws NumberFormatException {
            return FloatingDecimal.readJavaFormatString(s).doubleValue();
    }
    

    Double.valueOf()方法的源码:

      public static Double valueOf(String s) throws NumberFormatException {
    	      return new Double(FloatingDecimal.readJavaFormatString(s).doubleValue());
      }
    

    valueOf方法在返回的时候new Double(),所以返回的是Double。

    展开全文
  • 简化 java.lang.Double 类的源码

    万次阅读 2020-09-25 23:20:36
    public final class Double extends Number implements Comparable<Double>, Constable, ConstantDesc { @java.io.Serial private static final long serialVersionUID = -9172774392245257468L; //序列化...
    public final class Double extends Number implements Comparable<Double>, Constable, ConstantDesc {
       
        @java.io.Serial
        private static final long serialVersionUID = -9172774392245257468L; //序列化版本号
        private final double value; // 实际存储double数据的地方
        public static final double POSITIVE_INFINITY = 1.0 / 0.0;   // 正无穷常量
        public static final double NEGATIVE_INFINITY = -1.0 / 0.0;  // 负无穷常量
        public static final double NaN = 0.0d / 0.0;                // NaN 值
        public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 最大值: 1.7976931348623157e+308
        public static final double MIN_NORMAL = 0x1.0p-1022; // 最大正常值:2.2250738585072014E-308
        public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 最小值:4.9e-324
        public static final int MAX_EXPONENT = 1023;
        public static final int MIN_EXPONENT = -1022;
        public static final int SIZE = 64;              // 底层double占用的位数
        public static final int BYTES = SIZE / Byte.SIZE;
        public static final Class<Double>   TYPE = (Class<Double>) Class.getPrimitiveClass("double");
    
        /**
         * 构造方法
         */
        @Deprecated(since="9")
        public Double(double value) {}  // 传入的是一个double
        @Deprecated(since="9")
        public Double(String s) throws NumberFormatException {} // 传入的是一个字符串
        
        public boolean isNaN() {}           // 是否为NaN
        public boolean isInfinite() {}      // 当前值是否为无穷数(正、负都可以)
        public int compareTo(Double anotherDouble) {} // 当前值和anotherDouble比较大小
        public String toString() {}     // double转换为字符串
    
        /**
         * double转化为其它基本类型的数据
         */
        public byte byteValue() {}      // 得到byte类型
        public short shortValue() {}    // 得到short类型
        public int intValue() {}        // 得到int类型
        public float floatValue() {}    // 得到float类型
        public long longValue() {}      // 得到long类型
        @HotSpotIntrinsicCandidate
        public double doubleValue() {}  // 返回double的值
        @Override
        public int hashCode() {}        // 当前double值得hash值
        public boolean equals(Object obj) {} // 当前double值和obj是否相等
    
    
        /**
         * 静态方法是做工具对外提供使用的
         * 功能无非是两double数和、最大值、最小值、比较大小、double值得hash值
         */
        public static int hashCode(double value) {}         // 得到value的hash值
        public static boolean isNaN(double v) {}            // v是否为NaN
        public static boolean isInfinite(double v) {}       // v是否为无穷数
        public static boolean isFinite(double d) {}
        public static double sum(double a, double b) {}     // a、b求和
        public static double max(double a, double b) {}     // a、b最大值
        public static double min(double a, double b) {}     // a、b最小值
        public static int compare(double d1, double d2) {}  // a、b两数比大小
        public static String toString(double d) {}          // d 转字符串
        public static String toHexString(double d) {}       // d 转16进制字符串
        @HotSpotIntrinsicCandidate
        public static Double valueOf(double d) {}           // double转Double
        public static Double valueOf(String s) throws NumberFormatException {}  // 字符串转Double
        public static double parseDouble(String s) throws NumberFormatException {} // 解析字符串转为double
        
        
        @HotSpotIntrinsicCandidate
        public static long doubleToLongBits(double value) {}        // double转换为2进制
        @HotSpotIntrinsicCandidate
        public static native long doubleToRawLongBits(double value);// double转换为2进制的数字   
        @HotSpotIntrinsicCandidate
        public static native double longBitsToDouble(long bits);    // 2进制数转换为double
        
        @Override
        public Optional<Double> describeConstable() {
            return Optional.of(this);				// 将当前double值包装为Optional对象
        }
        @Override
        public Double resolveConstantDesc(MethodHandles.Lookup lookup) {
            return this;
        }
    }
    
    展开全文
  • Java面试官:兄弟,你确定double精度比float低吗?

    万次阅读 多人点赞 2019-03-31 07:25:46
    我有一个朋友,叫老刘,戴着度数比我还高的近视镜,显得格外的“程序员”;穿着也非常“不拘一格”,上半身是衬衣西服,下半身是牛仔裤运动鞋。 我和老刘的感情非常好,每周末我们都要在一起吃顿饭。...

    我有一个朋友,叫老刘,戴着度数比我还高的近视镜,显得格外的“程序员”;穿着也非常“不拘一格”,上半身是衬衣西服,下半身是牛仔裤运动鞋。

    我和老刘的感情非常好,每周末我们都要在一起吃顿饭。这周,我们吃的是洛阳有名的吴家刀削面,席间他聊了一件蛮有趣的面试经历;我听得津津有味。

    散席的时候,老刘特意叮嘱我把他和面试者的对话整理一下发出来,因为他觉得这段对话非常的精彩,值得推荐给更多初学Java的年轻人。

    注:以下是老刘和面试者东丰的真实对话。如有雷同,请勿对号入座

    老刘:“东丰,你长期从事金融软件的开发,记录存款和金额之类的有关数据用哪种数据类型啊?”

    东丰:“当然用float啊,精确度比double高嘛。”

    老刘:“东丰,你确定double精度比float低吗?”

    东丰:“那当然啊,double只精确到小数点后两位,double这个单词的意思不就是二的意思吗?”

    老刘:“东丰,你右手边刚好有一本《Java核心技术卷1》,你翻到第35页,看一下。”

    东丰:“…哦,刘经理,不用了。不好意思,刚刚开个玩笑,为了缓和一下面试的紧张气氛。看您厚厚的眼镜片下藏着一双深邃的眼睛,我觉得您一定大有学问。在金融计算中,必须要使用BigDecimal,double和float都不适合。因为单单一个精度问题就能把人整晕了。”

    “我记得有一次,我碰巧要计算一个表达式a - b,a的值为2,b的值为1.1,我侄女五岁半都知道答案应该是0.9,结果程序算出来的结果竟然是0.89999…,我当时又气又激动,气的是计算机还没有我侄女靠谱,激动的是我竟然第一次找到了Java的bug。”

    “我赶紧把这个bug反馈到了沉默王二的青铜时代群,以为我要被大家点赞表扬了。结果收到了大佬们一致的无情的嘲笑!”

    “好在,群主二哥及时地安慰了我。他发我私信说:‘首先,计算机进行的是二进制运算,我们输入的十进制数字会先转换成二进制,进行运算后再转换为十进制输出。double和float提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只能无限接近于原本的值,这就导致了你看到的不正确的结果。’”

    “看到二哥的信息后,我沮丧的心情得到了很大的安慰。我于是就对使用浮点数和小数中的问题进行了深入地研究。”

    “BigDecimal可以表示任意精度的小数,并对它们进行计算。但要小心使用 BigDecimal(double) 构造函数,因为它会在计算的过程中产生舍入误差。最好要使用基于整数或 String 的构造函数来创建BigDecimal对象。”

    老刘:“哇,你回答得很好。那我们来看下一个问题。你应该知道2 / 0的时候程序会报java.lang.ArithmeticException的错误,那么你知道2.0 / 0的结果吗?”

    东丰:“刘经理,您这个问题难不倒我。结果是Infinity(英菲尼迪),不好意思,我的英语口语能力有限啊。其实就是无穷的意思。不仅有正无穷大,还有负无穷大,甚至还有一个叫做NaN的特殊值。NaN代表‘不是一个数字’。这些值的存在是为了在出现错误条件时,程序还可以用特定的值来表示所产生的结果。这些错误的情况包括算术溢出、给负数开平方根,还有您说的除以 0 等。”

    老刘:“东丰啊,你的发音比我好啊,挺准确的。”

    东丰:“刘经理您见笑了。”

    老刘:“我这还有一道关于数组的问题,你稍等一下,我在纸上写一下。”

    int[] a = {1, 2, 3, 4}
    int[] b = {2, 4}
    int[] c = {1, 3}
    int[] d = {2}
    

    “有这样四个数组,要求每个数组只留一个唯一的元素。也就是说,a、b、c、d四个数组之间的元素不能相同,你打算怎么做呢?”

    东丰:“刘经理,我能用一下您的凌美钢笔吗?”

    老刘:“可以啊,你请用。”

    东丰:“我大致演算了一下。说一下我的思路。d只能是2,b只能是4,a是1或者3,c是3或者1。遍历长数组,剔除长数组中含有的最短数组的元素。b中剔除d中的2还剩下4,a中剔除d中的2还剩下1、3、4,c中不含d中元素,所以不用剔除。剔除后b中还剩下一个4,d中是一个2。再次遍历剔除a中的4。最后a和c中只剩下1和3了,再分别剔除互异的数就行了。”

    “我觉得比较笨的作法,刘经理您觉得可行吗?”

    老刘:“可行,没有问题。那,你对变量和方法的命名有什么看法呢?请随意发挥啊。”

    东丰:“我在博客园上曾看到一个有意思的投票统计——选出平常工作时自己认为最难的事情,选项大致有:”

    • 写各种文档
    • 与客户沟通
    • 预估工作量
    • 给变量命名

    “投票结果完全出乎我的意料,排在第一的竟然是‘给变量命名’!变量命名实在是软件开发中最常见的一件事了,但这件事要想做好,还真是不容易啊。”

    “阿里巴巴Java开发手册中「强制」规定,方法名、参数名、成员变量、局部变量要统一使用lowerCamelCase风格,必须遵从驼峰形式。”

    localValue // 变量
    getHttpMessage() // 方法
    

    “有很长一段时间,我总是在纠结究竟是用拼音好还是用英语单词好的问题。后来我下定了决心:要么用拼音要么用英语单词,只要看到名字就能知道这个变量或者方法的用意就行了。”

    “有时候,确实很难给变量取一个好名字。这时候,我就会选择一种省时省力省心的做法——将变量名命名为类型名。比如说:”

    Map map;
    List list;
    

    “最好,变量声明的地方要离第一次使用的地方近。否则的话,代码阅读起来会很困难,因为人眼睛接受的屏幕高度是有限的。”

    老刘:“东丰啊,你非常的优秀。恭喜你,你的面试过了。你回去准备一下,下周一就可以来上班了。”

    再注:以上是老刘和面试者东丰的真实对话。如有雷同,请勿对号入座


    上一篇:对《Java核心技术卷一》读者的一些建议

    下一篇:请用面向对象的思想,谈一谈这次面试的过程

    谢谢大家的阅读,原创不易,喜欢就随手点个赞👍,这将是我最强的写作动力。如果觉得文章对你有点帮助,还挺有趣,就关注一下我的公众号「沉默王二」。

    展开全文
  • doubleDouble的区别

    万次阅读 多人点赞 2017-08-21 17:43:46
    double是基本数据类型,Double是原始数据类型 double没有方法,Double有自己的属性和方法 double只创建引用,Double创建对象 集合类不能存放double,只能存放Double double存放在栈中,Double存放在堆中 栈的...
    double是基本数据类型,Double是原始数据类型
    double没有方法,Double有自己的属性和方法
    double只创建引用,Double创建对象
    集合类不能存放double,只能存放Double
    double存放在栈中,Double存放在堆中
    栈的存取速度要高于堆,另外栈中的数据可以共享
    如:
    double a = 0;
    double b = 0;
    不会创建对象,只会建立两个引用,同时指向变量“0”(栈数据共享)

    Double a = new Double(0);
    Double b = new Double(0);
    会创建两个对象,即使对象所代表的值一样(堆数据不共享)
    所以从效率来讲用double合适,而Double提供的属性和方法会使操作各种操作更加方便和灵活
    展开全文
  • java double转string

    万次阅读 2016-04-25 20:00:06
    java中,double转string可以用Double.toString(d)的方式。但是,这种方式有隐藏的坑,请大家看仔细了:package hello;public class DoubleToString { public static void test1(double dou) { String dou_str = ...
  • Using new Double(double) is guaranteed to always result in a new object whereas Double.valueOf(double) allows caching of values to be done by the compiler, class library, or JVM. Using of cac...
  • Doubledouble的区别

    千次阅读 2017-01-16 17:52:43
    1、Double是java定义的类,而double是预定义数据类型(8种中的一种) 2、Double就好比是对double类型的封装,内置很多方法可以实现String到double的转换,以及获取各种double类型的属性值(MAX_VALUE、SIZE等等) ...
  • double相乘

    千次阅读 2019-06-06 18:11:59
    1.报错程序 ... public static Double multiply(Double a, Double b) { return a * b } } 2.分析造成问题的原因 直接执行报错 3.解决方案 public class Multiply { public static Double m...
  • 整理一下,在写js代码时,我们经常会因为带有小数的运算而头痛。因为它会出现产生多位数和计算精度损失。 在Java代码中我们可以有以下3种方式转化 parseFloat("123.2") ...并没有转化为double的。这时怎
  • C# string转doubledouble转string

    千次阅读 2020-03-14 19:52:15
    string转double string str_test_wall; double numDouble= double.Parse(str_test_wall); double转string double numDouble = 123.321; string str_test_wall= Convert.ToString(numDouble); ...
  • matlab中的complex doubledouble

    万次阅读 2018-07-17 21:52:28
    double型的数值进行运算,结果出来却为complex double?在Matlab论坛中看到了大家的讨论 因为结果产生了complex类型的数 sqrt(-1)的话这里-1是real double,结果是complex double...
  • java将double型数据转化为String类型

    万次阅读 2019-04-18 14:23:54
    运用String.valueOf(double d)方法和运用语句String string = “” + d可以将double数据转化为String类型
  • Double取整

    千次阅读 2016-11-24 17:16:28
    // Double向上取整,四舍五入 double upvalueB = new java.math.BigDecimal(2.4875).setScale(0,java.math.BigDecimal.ROUND_HALF_UP).doubleValue(); Double mulresult = mul(upvalueB, Double.valueOf(1)); /**...
  • 【Java面试题】Doubledouble 区别

    千次阅读 2019-02-11 23:04:03
    1、Double是java定义的类,而double是预定义数据类型(8种中的一种) 2、Double就好比是对double类型的封装,内置很多方法可以实现String到double的转换,以及获取各种double类型的属性值(MAX_VALUE、SIZE等等) ...
  • double转int

    万次阅读 2019-01-24 09:29:03
    关于double转int类型,在本来的认知中,以为任何情况强转可以搞定一切,但在实际应用时发现不然,需求是需要从excel表中读出xx.xx这样的数字信息,且需要在此数值*100后作为查询条件去db查询,这就需要精确性了,...
  • java Double 详解

    千次阅读 2019-08-27 11:52:29
    public class DoubleDome { static void m1() { Double double1=new Double(2.0); System.out.println(double1); Double double2=new Double("12"); System.out.println(double2); ...
  • Java类型转换: int转double

    万次阅读 2019-02-23 16:52:10
    标题Java类型转换: int转double 由于double的范围比int数据类型大,所以当int值被赋给double时,java会自动将int值转换为double。 隐式转换:由于double数据类型的范围和内存大小都比int大,因此从int到double的...
  • Double取值intValue()与doubleValue()

    万次阅读 2018-09-15 12:11:24
    描述一个之前没注意,手误造成的bug。 可以看出,Double调用intValue()结果类似于RoundingMode.DOWN。 调用doubleValue()才是取double真实值。
  • java中基本类型double和对象类型Double

    千次阅读 2019-04-19 13:44:00
    Double.valueOf(str)把String转化成Double类型的对象比如Stirng str="1.0";那么Double.valueOf(str)等价于new Double("1.0");而doubleValue();就是求double类型的原始值,等价于double dnum=Double.valueOf(str)....
  • double保留两位小数,返回double

    千次阅读 2019-01-21 10:05:37
    3 4 5 6 7 8 9 10 ...private Double get(){ ... double a=1.0;... return new Double(df.format(a).toString()); } private double get(){ DecimalFormat df=new DecimalFormat("0.
  • java double类型保留位数、double转int

    万次阅读 2017-12-12 16:27:05
    1.double保留小数点后一位 DecimalFormat df = new DecimalFormat("#.0"); df.format(0.99); 同理,保留小数点后两位 DecimalFormat df = new DecimalFormat("#.00"); df.format(0.99); 同理保留小数点后零位 ...
  • String转Double

    万次阅读 2019-01-02 17:54:20
    String a = achievement.getGroupFraction1(); Double aa = Double.parseDouble(a); 得到字段,然后使用这个方法 Double.parseDouble(); 就可以了
  • int转double

    万次阅读 2018-04-10 11:59:29
    两个int类型数值相除 用double接收时 应写为int a=1; int b=2; double d=(double)a/b不加(double)不会报错 但是d会为0.0 
  • 封装类Double与基本类型double

    千次阅读 2018-04-03 10:01:35
    Double类型是可以完整表达一个10进制的小数的。只不过不是书写的表达,而是逻辑的表达。是不是有点绕嘴?简而言之,Double类型在进行牵扯到小数的运算的时候一律采用模拟运算。并且Double类型内部封装的是一个字符串...
  • String转double保留两位小数

    万次阅读 2015-07-07 18:00:11
     关于此问题,网上一些答案不太靠谱 通过实践,此处只提供一个办法: ... Double cny = Double.parseDouble(price_CNY);//6.2041 这个是转为double类型 DecimalFormat df = new DecimalFormat("...
  • Qt - double转换QString, 并设置精度

    万次阅读 多人点赞 2014-04-18 17:34:00
    double转换QString, 并设置精度 本文地址:http://blog.csdn.net/caroline_wendy Qt中, 很多函数都需要使用QString类型, double类转换QString类型, 使用QString::number()函数; 第一个参数为: 需要转换的double...
  • 1.使用List存储从数据库中获取的坐标值 2. select min(lng),min(lat),max(lng),max(lat) from table where lng0 3. List lngLat= getBoundsForMapAll();//必须使用Double存储数组 ... double lng1 =
  • 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。 表11-15 ...
  • c语言double类型printf问题

    万次阅读 多人点赞 2018-10-03 11:32:10
    背景:今天在用c语言写程序时遇到了一个问题:printf("%lf",double(r));竟然输出乱码(0.000000),浏览了几十个网页之后,大致找到了问题原因。 结论:在c语言中,double类型的读入必须用"%lf";输出必须用"%f" ...

空空如也

1 2 3 4 5 ... 20
收藏数 242,763
精华内容 97,105
关键字:

double