首页 > 编程语言 >【java】对Double类型保留2位小数,并去除尾部多余的0

【java】对Double类型保留2位小数,并去除尾部多余的0

时间:2024-12-13 22:53:29浏览次数:5  
标签:test1 INFO java 22 46 Double DoubleTest main 小数

java测试代码:

package com.ruoyi.workhour.service.impl;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

import java.math.BigDecimal;
import java.math.RoundingMode;

@Slf4j
public class DoubleTest {

    @Test
    void test1() {
        var list = new Double[]{2.3612, 1.0, 120.20, 1200.0, 0.0, 1.2365, 1.30000, 1.4530000, 1 / 3.0, 4.0 / 7};
        for (var i : list) {
            log.info("{}", round3(i, 2).doubleValue());
            log.info("{}", round3str(i, 2));
        }
    }

    BigDecimal round3(Double d, int digit) {
        var d2 = BigDecimal.valueOf(d).setScale(digit, RoundingMode.HALF_UP);
        return d2.stripTrailingZeros();
    }

    String round3str(Double d, int digit) {
        return round3(d, digit).toPlainString();
    }
}

运行结果:

D:\Java\jdk21\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:D:\soft\IDEA\lib\idea_rt.jar=49371:D:\soft\IDEA\bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 @C:\Users\Administrator\AppData\Local\Temp\idea_arg_file1176449103 com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 com.ruoyi.workhour.service.impl.DoubleTest,test1
22:46:07.858 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 2.36
22:46:07.862 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 2.36
22:46:07.862 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 1.0
22:46:07.862 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 1
22:46:07.862 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 120.2
22:46:07.862 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 120.2
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 1200.0
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 1200
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 0.0
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 0
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 1.24
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 1.24
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 1.3
22:46:07.863 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 1.3
22:46:07.864 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 1.45
22:46:07.865 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 1.45
22:46:07.865 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 0.33
22:46:07.865 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 0.33
22:46:07.865 [main] INFO  c.r.w.s.i.DoubleTest - [test1,16] - 0.57
22:46:07.865 [main] INFO  c.r.w.s.i.DoubleTest - [test1,17] - 0.57

Process finished with exit code 0

  

标签:test1,INFO,java,22,46,Double,DoubleTest,main,小数
From: https://www.cnblogs.com/joeblackzqq/p/18606047

相关文章

  • 旅游网页设计 web前端大作业 全球旅游私人订制 旅游公司网站模板(HTML+CSS+JavaScript
    ......
  • 43. JavaScript流程控制、函数、对象、BOM、DOM
    1.流程控制1.1if判断[1]单if分支if(条件){条件成立运行的代码}[2]if...else分支if(条件){条件成立运行的代码}else{条件不成立运行的代码}vara=10;if(a>=20){console.log("ok")}else{console.log("g......
  • Java笔记——对JAVA的认知_对java的看法
    一.JAVA的介绍Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编......
  • Java程序员如何精进性能优化技能?
    作为一个程序员,性能优化是常有的事情,不管你是刚入行的小白还是已经入坑了很久的小秃头都会经历很多不同层次的性能优化——小到代码审查大到整个系统设计的优化!大势所趋之下,如何让自己的优化方向精准到性能瓶颈的那个点以及尽可能的提高优化的性价比已经慢慢成为每一个程序员都......
  • JavaEE初阶——多线程4(线程安全 和 解决办法(synchronized))
    线程不安全原因小结:1.【根本原因】操作系统上的线程是“抢占式执行”“随机调度”=>线程之间执行顺序有很多变数(罪魁祸首,万恶之源)2.代码结构:代码中,多个线程,同时,修改,同一个变量。、如果只是读取,变量的内容是固定不变的。如果是两个不同变量,彼此之间就不会产生相互覆盖......
  • 现在Java4-5年经验面试前需要提前准备什么?
    2024快过去了,不少人找LZ咨询,问我现在的面试需要提前准备什么?为了造福更多的开发者,也为了让更多的小伙伴通过面试;LZ近期也一直想着怎么才能帮到大家。所以近期在各大渠道整合大厂相关面试题,并结合了我一位现在已经入职阿里(阿里的Offer就是他今年的第15张offer)的朋友一整年的面试......
  • JavaWeb02
    1.jsp+dao完成crud操作1.1展示所有数据到网页上publicArrayList<Student>findAll(){//创建一个集合容器ArrayList<Student>list=newArrayList<>();try{//获取连接对象getConn();//获取执行sq......
  • 基于Java的springboot/SSM+vue.js+uniapp小程序软件学院学生成绩管理系统的附带文章源
    文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 工作三年,字节让我java转go,怎么选择?
    在面临从Java转向Go的语言选择时,以下是一些考虑因素,可以帮助你做出决定:技术栈匹配:灵动Ai:了解灵动Ai的技术栈和项目需求。如果Go在该公司的项目中更为常见或更受青睐,那么转向Go可能会对你的职业发展更有利。个人兴趣和擅长领域:考虑你对Java和Go哪一种语言有更大的兴趣。......
  • 想通过自学入门Java,推荐看谁的课程?
    自学Java时,选择合适的课程非常重要。以下是一些知名的Java教学资源和讲师,他们的课程广受好评,适合初学者入门:1.**尚硅谷**-张晓峰 -尚硅谷的Java基础课程非常适合初学者,张晓峰老师的讲解深入浅出,课程内容全面。2.**极客时间**-老男孩 -老男孩的Java基......