java保留4位有效数字_Java:保留几位有效数字
来自
例子:保留3位有效数字
1,239,451 ===》 1,240,000
12.1257 ===》12.1
.0681 ===》.0681
5 ===》5
代码实现
public static double roundToSignificantFigures(double num, int n) {
if(num == 0) {
return 0;
}
final double d = Math.ceil(Math.log10(num < 0 ? -num: num));
final int power = n - (int) d;
final double magnitude = Math.pow(10, power);
final long shifted = Math.round(num*magnitude);
return shifted/magnitude;
}
原理分析
1. 基本数学知识
Math.ceil()用作向上取整。
math.ceil(8)=8
math.ceil(8.5) =9
math.ceil(-8) =-8
math.ceil(-8.5))= -8
Math.floor()用作向下取整。
Math.floor(0.60) = 0
Math.floor(0.40) = 0
Math.floor(5) = 5
Math.floor(5.1) = 5
Math.floor(-5.1) = -6
Math.floor(-5.9) = -6
Math.round() 我们数学中常用到的四舍五入取整。
math.round(-8.9) =-9
math.round(-8.1) =-8
math.round(8.9) =9
math.round(8.1) =8
Math.pow(底数,几次方)
double a=2.0;
double b=3.0;
double c=Math.pow(a,b);
就是2的三次方是多少;
c最终为8;
Math.log10(double a) 返回以10为底的double的值。
特殊情况:
如果参数是NaN或小于零,那么结果是NaN.
如果参数是正无穷大,那么结果为正无穷大.
如果参数是正零或负零,那么结果是负无穷大.
如果参数是等于10N整数n,那么结果是n.
对数
如果a的x次方等于N(a>0,且a不等于1),那么数X叫做以a为底N的对数(logarithm),记作x=logaN
。其中,a叫做对数的底数,N叫做真数,x叫做“以a为底N的对数”
2. 小技巧
对一个数,求其以10为底的对数,可以很方便的知道他的位数。
如:
Math.log10(60984.1)=4.78521661890635
60984.1的位数 5
原理
Math.round() 可以帮助我们四舍五入。注意它针对第一个小数点。
我们可以将12300变成1.23,这样就可以四舍五入了。然后还原位数10000.
java保留4位有效数字_Java:保留几位有效数字相关推荐
- 用java编写保留两位小数_Java保留两位小数的几种写法总结
摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...
- java里相乘取两位小数_Java保留两位小数的几种做法
在平时写程序的时,可以需要在界面或者页面上展示保留小数点后两位的数据.为了达到这样的展示效果,本文列举了几个方法: 使用java.math.BigDecimal 使用java.text.Decimal ...
- java实现次方的运算_Java中对于位运算的优化以及运用与思考
引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...
- java取余位运算_Java中对于位运算的优化以及运用与思考
引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...
- java int 保留两位小数_java保留两位小数
java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); doub ...
- java int 保留两位小数_java 保留两位小数的几种方法
1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; pu ...
- java 两位小数_java保留两位小数及多位小数的方法 | 夕辞
在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例. [推荐]第一种:S ...
- java 保存2位小数_java 保留2位小数
java 保留2位小数 java 保留2位小数 转载 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigD ...
- long类型保留两位小数_java保留两位小数问题
java 保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); dou ...
最新文章
- 双十一:你收到了多少商家短信
- boost::core模块实现分配器重新绑定的实例
- 【机器视觉】Qt集成Halcon开发环境详解(二)
- php如何新建xml文件,PHP新建XML打开XML读取XML怎么写
- python数据结构《排序专题复习》
- Ubuntu 修改默认的PDF打开方式
- sdut 区间覆盖问题
- python pandas 数据库_Python中pandas函数操作数据库
- android cpu 压力测试,两个古董级压力测试工具 leakyapp.exe 和 cpustre.exe
- HDU - 1087
- sv_labs学习笔记——sv_lab3(System Verilog)
- arduino 土壤温湿度传感器_三分钟告诉你Arduino是什么
- Sun JVM 内存管理、参数与调优、内存分配与回收策略、GC 日志配置使用详解
- canpro脚本_shell脚本实现-----自动巡检脚本.sh
- Nuxt.js 如何做SEO优化
- centos7操作系统下编译安装veracrypt
- 计算机模拟地球爆炸,地球爆炸模拟器最新版
- 【深度学习】手写数字识别Tensorflow2实验报告
- linux cfs时间,Linux调度的实现(CFS)——虚拟时间计算
- Vue教程03-Vue脚手架开发环境