java保留4位有效数字_Java:保留几位有效数字

博客介绍了Java中保留有效数字的相关内容,给出保留3位有效数字的示例,提供了保留指定有效数字的代码实现,并对代码中用到的Math类方法进行原理分析,如向上取整、向下取整、四舍五入等,还提及利用对数确定数字位数的小技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自

例子:保留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.

09ddca8b17ef?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值