- 浏览: 801112 次
- 性别:
- 来自: 哈尔滨
文章分类
最新评论
-
doloveme:
$sudo cp MONACO_Linux.ttf /usr/ ...
terminator 的配置 -
腾讯rep:
lowser
RSA加密算法c++简单实现 -
csuhanyong:
好YD啊,好YD
一图流:机械键盘各轴区别 -
doloveme:
1。其中:extman ,extmail下载http://ww ...
Ubuntu下安装postfix+extmail邮件服务器 -
doloveme:
repo sync出现“fatal: '../platform ...
Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/260776 》 谢谢支持!★★★
本篇介绍了在JAVA中如何对double或者float的浮点数进行精度计算,在JAVA中提供了多种参数来实现精度的不同控制方式。具体例子如下:
- /*
- * Created on 2005-6-5
- * Author stephen
- * Email zhoujianqiang AT gmail DOT com
- * CopyRight(C)2005-2008 , All rights reserved.
- */
- package com.soft4j.utility;
- import java.math.BigDecimal;
- /**
- * 与小数位精度(四舍五入等)相关的一些常用工具方法.
- *
- * float/double的精度取值方式分为以下几种: <br>
- * java.math.BigDecimal.ROUND_UP <br>
- * java.math.BigDecimal.ROUND_DOWN <br>
- * java.math.BigDecimal.ROUND_CEILING <br>
- * java.math.BigDecimal.ROUND_FLOOR <br>
- * java.math.BigDecimal.ROUND_HALF_UP<br>
- * java.math.BigDecimal.ROUND_HALF_DOWN <br>
- * java.math.BigDecimal.ROUND_HALF_EVEN <br>
- *
- * @author stephen
- * @version 1.0.0
- */
- public final class RoundTool {
- /**
- * 对double数据进行取精度.
- * <p>
- * For example: <br>
- * double value = 100.345678; <br>
- * double ret = round(value,4,BigDecimal.ROUND_HALF_UP); <br>
- * ret为100.3457 <br>
- *
- * @param value
- * double数据.
- * @param scale
- * 精度位数(保留的小数位数).
- * @param roundingMode
- * 精度取值方式.
- * @return 精度计算后的数据.
- */
- public static double round(double value, int scale, int roundingMode) {
- BigDecimal bd = new BigDecimal(value);
- bd = bd.setScale(scale, roundingMode);
- double d = bd.doubleValue();
- bd = null;
- return d;
- }
- /**
- * 测试用的main方法.
- *
- * @param argc
- * 运行参数.
- */
- public static void main(String[] argc) {
- //下面都以保留2位小数为例
- //ROUND_UP
- //只要第2位后面存在大于0的小数,则第2位就+1
- System.out.println(round(12.3401,2,BigDecimal.ROUND_UP));//12.35
- System.out.println(round(-12.3401,2,BigDecimal.ROUND_UP));//-12.35
- //ROUND_DOWN
- //与ROUND_UP相反
- //直接舍弃第2位后面的所有小数
- System.out.println(round(12.349,2,BigDecimal.ROUND_DOWN));//12.34
- System.out.println(round(-12.349,2,BigDecimal.ROUND_DOWN));//-12.34
- //ROUND_CEILING
- //如果数字>0 则和ROUND_UP作用一样
- //如果数字<0 则和ROUND_DOWN作用一样
- System.out.println(round(12.3401,2,BigDecimal.ROUND_CEILING));//12.35
- System.out.println(round(-12.349,2,BigDecimal.ROUND_CEILING));//-12.34
- //ROUND_FLOOR
- //如果数字>0 则和ROUND_DOWN作用一样
- //如果数字<0 则和ROUND_UP作用一样
- System.out.println(round(12.349,2,BigDecimal.ROUND_FLOOR));//12.34
- System.out.println(round(-12.3401,2,BigDecimal.ROUND_FLOOR));//-12.35
- //ROUND_HALF_UP [这种方法最常用]
- //如果第3位数字>=5,则第2位数字+1
- //备注:只看第3位数字的值,不会考虑第3位之后的小数的
- System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_UP));//12.35
- System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_UP));//12.34
- System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_UP));//-12.35
- System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_UP));//-12.34
- //ROUND_HALF_DOWN
- //如果第3位数字>=5,则做ROUND_UP
- //如果第3位数字<5,则做ROUND_DOWN
- System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_DOWN));//12.35
- System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_DOWN));//12.34
- System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_DOWN));//-12.35
- System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_DOWN));//-12.34
- //ROUND_HALF_EVEN
- //如果第3位是偶数,则做ROUND_HALF_DOWN
- //如果第3位是奇数,则做ROUND_HALF_UP
- System.out.println(round(12.346,2,BigDecimal.ROUND_HALF_EVEN));//12.35
- System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_EVEN));//12.35
- }
- }
发表评论
-
JAVA代码混淆
2016-05-05 18:24 1371JAVA代码混淆 <!--[if !supportL ... -
android 监听状态栏被下拉
2015-12-25 17:23 3379Activity的onWindowFocusChange()方 ... -
android使用mount挂载/system/app为读写权限,删除或替换系统应用
2015-11-27 14:13 3950注意:以下代码中#开头的则为需要执行的shell命令,其他的 ... -
Ubuntu 14.04 文件服务器--samba的安装和配置
2015-11-10 10:49 605jingyan.baidu.com/album/00a07f ... -
intellij 打开工程在每个java文件上 有个红色的无效符
2015-07-24 13:52 1712说明该类不是可编译文件。在project Structure中 ... -
logcat命令详解
2015-07-22 16:34 934Android日志系统提供了记录和查看系统调试信息的功能。日 ... -
gradle打包遇到的错误汇总
2015-07-21 11:32 0错误1:A problem occurred ... -
SpringMVC入门
2015-07-02 18:23 738目录 介绍 实例 总结 参考资料 介绍 Sp ... -
Android读写XML(下)——创建XML文档
2015-04-29 11:02 570在前面的2篇文章Android读写XML(上)—— pack ... -
Android读写XML(中)——SAX
2015-04-29 10:54 590在Android读写XML(上) ... -
Android读写XML(下)——创建XML文档
2015-04-29 10:52 660在前面的2篇文章Android读写XML(上)—— pack ... -
android:configChanges locale 改语言后,该配置不起作用的原因
2015-03-23 14:38 2346@Override public void on ... -
android.app.Fragment$InstantiationException 解决办法
2015-03-23 13:46 1317android.app.Fragment$Instantia ... -
linux 查看内存
2015-02-10 13:08 6981、free监控内存使用情况 #free 2、watc ... -
android fastboot 刷机 指令
2015-01-19 18:31 1469原生bootloader:bootloader-gro ... -
[Android实例] android中进行https连接的方式的详解 (转发)
2015-01-09 15:50 666x 如果不需要验证服务器端证书, ... -
编译android源码apk是否生成odex方法
2014-10-20 17:19 1585其实Android系统默认的配置是,如果没有指定DISABL ... -
关于android源码中的APP编译时引用隐藏的API出现的问题
2014-10-20 15:36 775今天在编译android源码中的计算器APP时发现,竟然无法 ... -
Android系统进程Zygote启动过程的源代码分析
2014-09-17 10:09 454在Android系统中, ... -
Handler和HandlerThread
2014-09-16 16:58 6581.什么是Handler? SDK中关于Handler的说 ...
相关推荐
Java中的简单浮点数类型float和double不能够进行运算,因为大多数情况下是正常的,但是偶尔会出现如上所示的问题。这个问题其实不是JAVA的bug,因为计算机本身是二进制的,而浮点数实际上只是个近似值,所以从二进制...
浮点数转化器,单精度浮点计算软件,FLOAT转HEX
c语言浮点数高精度加法计算
float double 的浮点数类型转换
在计算机中有关浮点数转二进制的计算方法,里面讲得很清楚,原来是PPT文档,我已转成PDF的格式,看起来非常舒服。在编程中,特别是一些算法中经常用会一些浮点数的计算
目前支持二进制浮点数的硬件和软件文档中,几乎都声称其浮点数实现符合IEEE 754标准。那么,什么是IEEE 754标准? 最权威的解释是IEEE754标准本身ANSI/IEEE Std 754-1985《IEEE Standard for Binary Floating-Point...
浮点数在内存中的存储机制和整型数...1、将字符串转换为float、double过程存在精度损失,只是float、double各自损失的精度不相同而已std::string str=”8.2″;float cc=atof(str.c_str()); //cc的值为8.1999998std:
自己动手写C语言float浮点数转换字符串的函数
[Java]IEEE754浮点数的转换方法,方法都写好了,直接复制过去就可以用了,就这么简单!
用java从文件中读取浮点数 已经亲自实践过,没有问题
单精度浮点数,双精度浮点数,浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。
符合IEEE754规则的4字节数组转换为单精度浮点数的Labview实用小vi
使用C++位运算实现4字节十六进制数转换为float数,在项目应用中需要此函数,没有找到合适的现成实现代码,所以自己编写实现了一个函数,希望对用着的朋友有帮助
根据IEEE754规定写了个float型数据与二进制数转换的方法
Java对浮点数的计算是不精确的,比如0.05+0.01结果不是0.06,而是0.060000000000000005,更有甚者,一个数除以0.0,Java是不会抛异常,而是得出无穷大的结果.本工具类解决了上述问题.该类提供了加减乘除四则运算的精确计算...
C# Byte数组 数值转花 Int32 Short Float 浮点数 自己写的Test 有问题可以联系我
一个关于浮点数的计算软件,也就是一个浮点数对应的4字节数值是多少,该软件会帮你显示出来,特别在一个通讯传输,或则在调试算法的时候这个软件还是很有用的
浮点数精度
结合图释详细介绍浮点数的计算机存储结构。解释了IEEE有关浮点数的标准。