JAVA中对数的表达,将浮点数转为保留指定位数的字符串

在 Java 中没有直接提供 log₂(x) 方法 ,但可以用换底公式轻松实现:log2​(x)=ln(2)ln(x)​=log10​(2)log10​(x)​

Java 标准库 Math 类提供了:

  • Math.log(x):自然对数(ln,以 e 为底)
  • Math.log10(x):以 10 为底的对数

String 格式化将浮点数转为保留指定位数的小数

复制代码
double num = 3.1415926;
String result = String.format("%.4f", num);
System.out.println(result); // 3.1416(四舍五入)

精确计算场景:使用 BigDecimal

复制代码
import java.math.BigDecimal;
import java.math.RoundingMode;

double num = 3.1415926;
BigDecimal bd = new BigDecimal(num).setScale(4, RoundingMode.HALF_UP);
double res = bd.doubleValue();

输出用:DecimalFormat

复制代码
import java.text.DecimalFormat;

double num = 3.1415926;
DecimalFormat df = new DecimalFormat("#.0000");
String res = df.format(num);
相关推荐
安妮的小熊呢4 分钟前
CRMEB开源商城系统 & 标准版系统(PHP)开发规范
开发语言·javascript·php
子榆.10 分钟前
CANN ATC编译器:模型从Python到达芬奇指令走了多远
开发语言·python·neo4j
zzqssliu10 分钟前
SpringBoot框架搭建跨境独立站|Taocarts代购系统订单模块深度开发
java·spring boot·后端
Dontla22 分钟前
Multi-Agent多智能体项目如何从MVP过渡到生产项目?
开发语言
dinl_vin24 分钟前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
编码者卢布27 分钟前
【Azure Service Bus】Azure Service Bus Java SDK 中 Token 刷新异常的排查思路
java·python·azure
兰令水29 分钟前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
我还记得那天33 分钟前
C语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯35 分钟前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
AI瓦力40 分钟前
技术分享 | 彻底解决图片“躺平”问题:Java 后端强制校准图片方向
java