java保留有效数字

 1 在处理数值运算的时候,有时候会遇到保留几位小数的需求,下面是一个保留两位小数的简单方法。
 2 /**
 3   * 将数据保留两位小数
 4   */
 5      privatedoublegetTwoDecimal(doublenum) {
 6           DecimalFormatdFormat=newDecimalFormat("#.00");
 7           StringyearString=dFormat.format(num);
 8           Doubletemp= Double.valueOf(yearString);
 9           returntemp;
10      }

 这个方法可以把一个double类型的数值保留两位小数,并且可以实现数值的四舍五入。 其实,我们还有更简单的方法: double value =newBigDecimal(num).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 

 这个方法可以更加简单地实现将一个double型数值保留两位小数。不仅如此,还可以很方便的实现一些其他功能,比如: double value2 = new BigDecimal(num).divide(new BigDecimal(100)).doubleValue(); 

上面的代码可以实现精确的除法运算。除此之外,还可以实现加法、减法、乘法等,还可以选择四舍五入(BigDecimal.ROUND_HALF_UP)或者直接舍弃小数(BigDecimal.ROUND_DOWN)不进位。例如:
public static void main(String[] args) {BigDecimal a = new BigDecimal(1546).divide(new BigDecimal(1000)).setScale(2,BigDecimal.ROUND_DOWN);System.out.println(a);
}
虽然末位是6,但是仍然不进位,结果是1.54public static void main(String[] args) {BigDecimal a = new BigDecimal(1543).divide(new BigDecimal(1000)).setScale(2,BigDecimal.ROUND_UP);System.out.println(a);
}
这时,虽然末位是3,仍然进位,结果是1.55。

 

转载于:https://www.cnblogs.com/sily-boy/p/4769564.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言algorithm主函数,C语言中主函数中相关有关问题?

C语言中主函数中相关问题???#include #include #include #include #include #include #include #include #include using namespace std;int mp[20][20], b[20], max1, n;struct node{int a[15], top, ans, x;};void bfs(){int i, j, x;queue…

【Android基础】Fragment 详解之Fragment介绍

Fragment在Android 3.0( API 11)引入,是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大&#xf…

c语言统计数据,数据统计

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include void input(float score[10][5]);void average(float aver[]);void course(float cour[]);float score[10][5],aver[10],cour[5];int i,j;void main(){printf("please input the scores of all the students\n"…

传递闭包c语言算法解析,找关系的传递闭包 用c语言编 一个关系的传递闭包

为什么叫传递闭包??有什么特殊含义??设R是X上的二元关系,如果另一个关系R1满足:R1是传递的,R是R1的子集,对于任何可传递关系R11如果有R是R11的子集,就有R1是R11的子集。则…

linux之cp/scp命令+scp命令详解

命令:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 把计 -a 尽可能将档案状态、权限等资料都照原状予…

linux安装mq报5724,linux下MQ简单配置手册.doc

精品消息发送涉及到的队列及通道示意图:定义发送方为A,接收方为B,下面是建立A向B发送消息的单向配置。发送方A的配置1. 在发送方A创建队列管理器QM_A:[[email protected] ~]$ crtmqm -q QM_A成功后会有如下提示:There …

asp.net MVC控制器中返回JSON格式的数据时提示下载

Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据。代码如下: 视图中js代码: $("#form").ajaxSubmit({ …

linux postfix 搭建,linux 下搭建postfix服务器

linux 下postfix邮箱的安装linux一、首先关闭sendmail服务service sendmail stop二、chkconfig sendmail off(关闭开机自启动)三、修改DNS正解文件,使DNS可以解析邮箱服务添加下面两行mail.zhubf.com. IN A 172.17.17.2zhubf.com. IN MX 10 …

两个链表的第一个公共结点-输入两个链表,找出它们的第一个公共结点。

1、蛮力法: 1 /*2 struct ListNode {3 int val;4 struct ListNode *next;5 ListNode(int x) :6 val(x), next(NULL) {7 }8 };*/9 class Solution { 10 public: 11 ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHe…

android 飞框动画,AndroidTV中实现飞框选中效果

相信很多从事AndroidTV开发的朋友都对如何展示item的选中效果感到苦恼,电视端开发与移动端最大的不同是用户只能通过一个遥控器进行控制(当然如果你的电视是触屏的话除外……),在这个时候,我们需要让用户知道当前选中的到底是哪一个项目&…

VB 文件操作

1. 打开文件 Open "文件名" [for 模式] [Access 操作类型] [锁定] As [#]文件号 [Len记录长度] 模式:OUTPUT 写 INPUT 读 APPEND 追加 操作类型: READ WRITE READWRITE 锁定: Share (缺省)LOCKREAD LOCKW…

数组总结

1冒泡排序和选择排序 1 package hello;2 3 import java.io.BufferedOutputStream;4 import java.io.File;5 import java.io.FileInputStream;6 import java.io.FileNotFoundException;7 import java.io.FileOutputStream;8 import java.io.IOException;9 import java.io.InputS…

鸿蒙系统支持980,鸿蒙手机上线时间 鸿蒙系统支持哪些手机2021最新汇总

鸿蒙手机来了,从2019年公布到现在的正式发布,没想到华为这么迅速,而且华为EMUI微博更名HarmonyOS,在Android与iOS这两座大山面前,大家觉得鸿蒙系统值得更新体验吗?目前来说鸿蒙系统支持第三方手机有哪些呢&…

confluence正常安装网页报错_NAS折腾手记1:在OMV5上安装ZFS On Linux的正确步骤

起因是直接安装OVMExtra里自带的zfs插件会报错,所以需要使用命令行来做一些前置准备。源配置有两种方法。1是安装OMVExtra并在内直接启用所有测试源下载地址在此​omv-extras.org2是手动添加,执行以下命令vi /etc/apt/sources.list.d/buster-backports.l…

17个新手常见Python运行时错误

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。 1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError &#xff1…

android activity alias,动态更换桌标 Activity-alias

前言动态更换App图标,网上可以收搜到很多,这里也是参考前人经验,读完本文可以得到,如何动态更换桌标(非网络获取桌标图片),标志位的阐述,更加透彻的理解.用到的知识activity-alias并不是代表一个Activity,而是代表一个已经存在的Activity的别名。它使用在清单文件中…

python替代php,Python架构的PHP替代方案

I am happily using fabric for my Python projects for deployment. Now I am engaged in a larger PHP project and wondering if there is something like fabric for PHP?解决方案Hmm? Why does it matter? Fabric is just python scripting. So its project language a…

MAC终端安装grunt--javascript世界得构建工具

祝贺我成为前端啦!~~从年前得小测试到今年得前端,成功转型!我真是一个进步得好青年,好少女! 这两天出去受虐,面了两家前端,表现非常不好,还是回到我现在得公司好好沉淀技术&#xff…

android sdk eclipse没导入,Android—新的eclipse导入SDK出错解决办法

原先系统崩溃,重装系统,加入一块内存条,从32位变成62位,原先的eclipse用不了;去官网下载64位的eclipse,安装,用一样的方法导入SDK。这时候肯定会提示错误,如下:1.This An…

两个分数化简比怎么化_我学《分数的意义》心得

停课不停学已经有将近两个月了,我们迈入了“分数”这一部分。听妈妈说,这一块内容很重要,可我觉得到目前为止(明天就学真分数、假分数和带分数了),分数好像并不比四年级难。看了看书,再做点练习,把这点新的…