当前位置: 首页 > news >正文

浮点数保留指定位数的小数,小数位自动去掉多余的0

通过DecimalFormat.format可以按照指定的格式格式化数据。

public class test {
public static void main(String[] args) {
DecimalFormat d=new DecimalFormat(“#.#”);//在有小数的情况下留一位小数,默认是四舍五入
BigDecimal decimal=new BigDecimal(“3.1415926”);
double s=2.58863;
double s1=2.58963;
double s2=0;
String format1 = d.format(decimal);
String format2 = d.format(s);
String format3 = d.format(s1);
String format4 = d.format(s2);
System.out.println(format1);
System.out.println(format2);
System.out.println(format3);
System.out.println(format4);
}
}
运行结果:
在这里插入图片描述

模板语法

#:这个符号代表一个数字,会把可以去掉的0去掉,比如#.##,按照语法,保留两位小数,如果如果要格式化的数是1.597,正常来说是1.60,但因为后面的0可以去掉,所以格式化之后是1.6
0:这个符号代表一个数字,如果该位置没有数字,则显示0。比如000.00,如果传入的是1.5,那么格式化之后就是001.50
.:这个符号代表小数点。
,:这个符号代表千位分隔符。
;:这个符号用于分隔正数和负数,左边是正数的格式,右边是负数的格式。
%:这个符号代表百分比。在字符串后面用上加上之后,会自动将数据转换成百分比的表达方式。比如#.##%,传入的是0.48567,则格式化的结果是48.57%
‰:这个符号代表千分比。和上面同理
E:这个符号代表科学计数法中的指数符号。
\u00A4:这个符号代表货币符号。

注意

如果想要数据必须保留一位小数,哪怕小数位是0.
如果使用#.0%,在碰到整数位是0的时候,也就是0.x的时候,前面的0会省略,导致结果是.x%,小数点前面缺少0。
因此需要使用0.0%,这样获得的结果一定会保证个数位是有值的,哪怕是0。这样就会显示0.x%。符合预期。
如果是希望将小数点后面多余的0去掉,就可以用#.#%或0.#%,这样在遇到小数位后面有多余的0的时候会自动去掉。
无论是要保留多少位小数,在个位上面都可以放一个0来确保个位上一定会有数据。0.#%,0.0%

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Mysql高阶语句
  • 【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】
  • 大数据毕业设计选题推荐-市天气预警实时监控平台-Hadoop-Spark-Hive
  • NetworkManager 图形化配置 bond
  • 用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量
  • C语言面试
  • webpack的简单使用
  • python---类与对象
  • 2023 全栈工程师 Node.Js 服务器端 web 框架 Express.js 详细教程(更新中)
  • security实战
  • ActiveMQ、RabbitMQ、RocketMQ、Kafka介绍
  • java项目之个人健康信息管理(ssm+jsp)
  • kubernetes存储-volumes
  • 各种NoSQL数据库
  • CSAPP第4章:RISC和CISC指令集
  • hexo+github搭建个人博客
  • Docker: 容器互访的三种方式
  • Gradle 5.0 正式版发布
  • Js基础——数据类型之Null和Undefined
  • LeetCode算法系列_0891_子序列宽度之和
  • SpringBoot几种定时任务的实现方式
  • SQLServer之索引简介
  • Vue ES6 Jade Scss Webpack Gulp
  • vue--为什么data属性必须是一个函数
  • 从0实现一个tiny react(三)生命周期
  • 关于extract.autodesk.io的一些说明
  • 深度学习在携程攻略社区的应用
  • 为视图添加丝滑的水波纹
  • 项目管理碎碎念系列之一:干系人管理
  • Linux权限管理(week1_day5)--技术流ken
  • ​香农与信息论三大定律
  • #LLM入门|Prompt#3.3_存储_Memory
  • #NOIP 2014#Day.2 T3 解方程
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (10)STL算法之搜索(二) 二分查找
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (笔试题)合法字符串
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .Net中wcf服务生成及调用
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @拔赤:Web前端开发十日谈
  • [ C++ ] STL---string类的模拟实现
  • [1127]图形打印 sdutOJ
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [C#][DevPress]事件委托的使用
  • [C#]winform部署yolov9的onnx模型
  • [C#]winform基于opencvsharp结合Diffusion-Low-Light算法实现低光图像增强黑暗图片变亮变清晰
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析