黑马程序员技术交流社区

标题: 浮点类型相对于BigDecimal有什么优点 [打印本页]

作者: 第一印象    时间: 2013-10-19 11:44
标题: 浮点类型相对于BigDecimal有什么优点
一直在想,既然float,double类型在运算的时候会损失精度,而BigDecimal不会,那我们所有的表示浮点类型的都用BigDecimal不就完了吗?为什么还要用float和double类型呢,这三者都什么时候用,哪位高手能详细解答一下吗?


作者: zhou5852    时间: 2013-10-19 12:19
我看了下 BigDecimal的 源码带注释是3856行,没看过一个Bigdecimal的对象用流输出到文件的大小,我想如果所有的浮点数都用这个对象表示的话,那么应用程序机器臃肿,毕竟一个double再多才占8个字节,那么一个BigDecimal对象占多少字节就没人知道了,毕竟没有像C语言那样的sizeOf 运算符让咱们用,还有java中有strictfp关键字来封装方法和类,使浮点数计算更为精确。但是具体原理,自己也没看过虚拟机。。。。不过我想这比BigDecimal的内存使用少的多了。。。
作者: 龏鈊づ廱鵆ぐ    时间: 2013-10-19 17:27
如果我们要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。很繁琐
作者: 第一印象    时间: 2013-10-21 09:01
龏鈊づ廱鵆ぐ 发表于 2013-10-19 17:27
如果我们要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方 ...

繁琐倒是有点,不过能提供精确的结果,这也算是个区别吧,但是这种繁琐,我们可以将BigDecimal中我们需要用到的方法封装到我们自己的类中,然后用的时候用我们自己封装的类来运算就不烦所了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2