java - Java 浮点数格式
问题描述
有前2.52549856E8
浮点数。
我想要的只是简单地做到25.2549856E8
,就是这样,其他一切都可以留下来。
我寻求解决方案,但我发现的只是一堆字符串示例。
我得到纯浮点数。我应该先将其转换为字符串吗?有没有更简单的方法来做到这一点?
解决方案
如果您只想将点向右移动一位,您可以使用以下代码段,该代码段用于将String#substring()
其切割成String
正确的部分,然后再次将它们连接起来:
String number = String.valueOf(2.52549856E8f);
int index = number.indexOf('.');
String formatted =
number.substring(0, index) +
number.substring(index + 1, index + 2) +
'.' +
number.substring(index + 2);
number.substring(0, index)
去掉第一个数字number.substring(index + 1, index + 2)
去掉第二个数字'.'
插入新点number.substring(index + 2)
附加数字的其余部分
使用正则表达式也可以做到这一点:
String number = String.valueOf(2.52549856E8f);
String formatted = number.replaceAll("^(\\d)\\.(\\d)(\\d+E\\d+)$", "$1$2.$3");
推荐阅读
- javascript - 如何在不使用此获取按钮的情况下将数据从 firebase 检索到网络?
- mqtt - MQTT-SN v1.2 能否支持 MQTT v5 支持的请求-响应模式?
- docker - 让docker在构建镜像时使用代理下载依赖
- javascript - Firefox 扩展无法选择所有图像可能是由于 Canvas 函数 getImageData()
- php - 'and' 怎么写才好?
- java - 创建 Servlet 时遇到 Class not found 异常
- javascript - 有没有办法从浏览器复制“授权”参数?
- android - 在 ini 格式的文件中指定配置:
- javascript - 如何在 iframe 页面上运行 JavaScript?
- python - 如何在 Python 中优化二维字符串数组的序数编码?