精华内容
下载资源
问答
  • 转自一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾。...

    转自

    一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾。

    BigDecimal类位于java.maths类包下。

    首先我们来看下如何构造一个BigDecimal对象。它的构造函数很多,我挑最常用的两个来演示一下:

    一个就是BigDecimal(double val),另一个就是BigDecimal(String str)。

    下面是两个浮点数相减的例子来说明:

    public static void main(String[] args) {

    double a = 1;

    double b = 0.9;

    //推荐做法:把double转成String

    BigDecimal a1 = new BigDecimal(Double.toString(a));

    BigDecimal b1 = new BigDecimal(Double.toString(b));

    double c = a1.subtract(b1).doubleValue();

    System.out.println("c=" + c);

    //不推荐做法:直接传入double

    BigDecimal a2 = new BigDecimal(a);

    BigDecimal b2 = new BigDecimal(b);

    double d = a2.subtract(b2).doubleValue();

    System.out.println("d=" + d);

    }

    结果为:

    c=0.1

    d=0.09999999999999998

    结论:

    利用double类型作为参数的构造函数,不能精确构造一个BigDecimal对象,需要自己指定一个上下文的环境,也就是指定精确位。

    利用String类型作为参数的构造函数,能精确的构造出一个BigDecimal对象。

    展开全文
  • [quote] 商业项目注意float和double的...在《Effective Java》中也提到这个原则: float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。  怎样在实际中应用呢,...
    [quote]
    商业项目注意float和double的使用
    http://wenku.baidu.com/view/bffac8e9f8c75fbfc77db2eb.html

    在《Effective Java》中也提到这个原则:
    float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用
    java.math.BigDecimal。   

    怎样在实际中应用呢,其实也不难。简单提几点: 
    1.  数据库表的设计 
    资金字段的数据类型一般定义为number类型,长度可根据需要而定。 

    2. hibernate中po的属性的数据类型的定义 
           有两种选择,建议用double,float会有精度丢失的问题。hibernate映射工具自动生成的.hbm.xml中,默认也是double类型。 

    3.程序中资金的运算 
           必须使用java.math.BigDecimal,而不能使用float或者double。建议写个工具类,提供些常用的方法供加减等运算使用。

    [/quote]
    展开全文
  • 也知道现实世界中是由32313133353236313431303231363533e59b9ee7ad9431333337396362很多复杂的数据的,所以需要这种表示实数的数据类型的支持。一、浮点型常量Java的实常数有两种表示形式:十进制数形式,由数字和...

    展开全部

    小数属于浮点型(默认为double)。

    浮点型代表的是实数,其实就是包含小数的部分。也知道现实世界中是由32313133353236313431303231363533e59b9ee7ad9431333337396362很多复杂的数据的,所以需要这种表示实数的数据类型的支持。

    一、浮点型常量

    Java的实常数有两种表示形式:十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0 。

    科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。

    二、浮点型变量

    浮点型变量的类型有float和double两种。

    数据类型所占位数的范围:

    float 32位 3.4e-038~3.4e+038 ;

    double 64位 1.7e-308~1.7e+308 ;

    双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。

    三、浮点型变量定义举例

    float f; //指定变量f为float型

    double d; //指定变量d为double型

    java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的内存字节数,这样就保证了安全性、鲁棒性和平台无关性。

    展开全文
  • java数据类型之小数类型

    千次阅读 2017-10-29 10:56:30
    小数类型 数据类型 所占字节数 精度 float 4 7 double 8 15 class Demo { public static void main () { //1)小数字字面量默认double类型 //2)定义一个double类型变量 double dd =

    小数类型

    数据类型 所占字节数 精度
    float 4 7
    double 8 15
        class Demo {
            public static void main () {
                //1)小数字字面量默认double类型
                //2)定义一个double类型变量
                double dd  = 3.14;
                //3)定义一个float类型变量
                float ff = 4.56;
            }
    
        }
    展开全文
  • 一、基本数据类型Java有八大基本数据类型分别是:表示整数的类型,表示小数类型,表示字符的类型(不是字符串类型,要区分来),表示布尔类型类型。以上是Java的八种基本数据类型,其中要注意的String(字符串)在...
  • 概述基于Java,介绍将浮点类型小数进行格式化的方案。正文在Java中,用于格式化小数的类是java.text.DecimalFormat,比如你可以这样使用:double data = 3334590479.22d;System.out.println(data);//3.33459047922E9...
  • Java中的基本类型,一共八种,大体上可分为三类,数值型,字符型,真假型。数值中整数型为:byte,short,int,long。数值中小数型为:float,double。字符型为:char。真假型为:boolean。8 中类型表示范围如下:...
  • 常量的概述和使用什么是常量:在程序执行的过程中其值不可以发生改变Java中常量的分类:字面值常量和自定义常量字面值常量的分类:字符串常量(用双引号括起来的内容)、整数常量(所有整数)、小数常量(所有小数)、字符...
  • 基本数据类型:整数型:long------2的64次方int-------2的32次方short-----2的16次方byte------2的8次方浮点型:float-----小数位数最多7位, 保持总位数是8位double----小数位数最多15位, 保持总位数是16位逻辑型:...
  • 首先要明确一下转换规则:大数转小数,多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24个bit会被截断。例1:int b = 233; // 正整数强转System.out...
  • 首先要明确一下转换规则:大数转小数,多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24个bit会被截断。例1:int b = 233; // 正整数强转System.out...
  • 你楼上和楼主我有份愚见 首先:Java无法精确计算小数后面的比如 double a = 1.3; double b = 1.5; System.out.println( a == b); 你会发现结果是true 因为java计算的e68a84e8a2ad...
  • 一字节8电位Java byte 最左边一位表示正负,0是正,1是负.(option / alt) + / 代码提示Refactor 重构 Rename 重命名 (windows 重命名是选中需要重命名的文件点击快捷键 F2)byte 1字节 (Java 的 byte 类型 最左边一位...
  • 【填空题】Java小数默认的数据类型为 ,如果要指定为 类型,要在小数后面加F或f。更多相关问题— Your plan is perfect and I believe that it will be a great success .— ________________— What kind of event...
  • java小数计算

    千次阅读 2019-02-24 21:19:51
    有些人知道Java中double类型与float类型的精度不同,计算时精度会发生丢失甚至错误。 我也知道小数使用double与float会造成精度问题,但是一直都没有关心到底应该如何解决,最近工作中碰到了一个上千万的小数计算,...
  • 简介:importjava.math.BigDecimal;importjava.text.DecimalFormat;importjava.text.NumberFormat;publicclassDemo{/**获得的是double类型*m1importjava.math.BigDecimal;importjava.text.DecimalFormat;import...
  • 目前的解决办法数据库类型设置timestamp类型的length=0页面输入2013-02-1408:20改成输入2013-02-1408:20:00就可以使用getModel()方法了.postgres什么时间类型才没有.小数秒(毫微秒)哈哈我说的输入其实就是一个日期...
  • java使double类型保留两位小数的方法本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网!代码如下:mport java....
  • 同样,大多数开发人员也容易忽略java.math.BigDecimal 所提供的任意精度的小数 ―大多数应用程序不使用它们。然而,在以整数为主的程序中有时确实会出人意料地需要表示非整型数据。例如,JDBC使用 B...
  • JAVA中有8种基本数据类型(boolean, byte, short, int, long, float, double, char),其中float和double都是浮点型,但平常我们需要表示货币金额或小数类型的数值时,不能用这两种类型,因为浮点型的精确范围是不...
  • Java中的小数运算与精度丢掉float、double类型的问题咱们都知道,核算机是运用二进制存储数据的。而往常日子中,大多数情况下咱们都是运用的十进制,因而核算机显示给咱们看的内容大多数也是十进制的,这就使得许多...
  • 展开全部java判断数字类型32313133353236313431303231363533e4b893e5b19e31333366306532是否为小数,可以采用正则表达式的方式来判断,以下是使用正则表达式来判断数字类型是否为小数的代码:public static boolean ...
  • java double类型小数转百分数

    千次阅读 热门讨论 2018-05-31 08:18:42
    double result1=0.51111122111111; DecimalFormat df = new DecimalFormat("0.00%"); String r = df.format(result1); System.out.println(r);//great
  • float、double类型的问题我们都知道,计算机是使用二进制存储数据的。而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在二进制与十...
  • float、double类型的问题我们都知道,计算机是使用二进制存储数据的。而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在二进制与十...
  • Java中的强制类型转换 大数转小数发布于 2021-1-16|复制链接这里主要讨论一下大数转小数,比如int类型转short类型小数转大数,如short 转 int不做讨论,需要的朋友可以参考下首先要明确一下转换规则:大数转小数,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,448
精华内容 1,779
关键字:

java小数类型

java 订阅