DecimalFormat的几种用法

华为云数据中心方案拆解:混合云演进与绿色机房落地指南 传统数据中心普遍面临资源利用率低、PUE偏高、业务上线周期长的困境,这背后是静态孤立的物理架构与弹性需求的矛盾。虚拟化与资源池化解决了基础调度问题,而混合云则进一步平衡了业务弹性与安全合规。云数据中心的核心价值在于将底层硬件抽象为服务目录,通过分布式管理和自动管控实现从传统机房到云化平台的平滑演进。在落地过程中,业务分类、平台选型、绿色机房改造与自动化编排缺一不可。本文结合华为云解决方案,拆解从Silo'd Grid到混合云的路径,梳理基础、云、定制三类业务的迁移策略,并针对高密度制冷、异构纳管、多租户安全 阅读详情
NumberFormat.getInstance()方法返回NumberFormat的一个实例(实际上是NumberFormat具体的一个子类,例如DecimalFormat), 这适合根据本地设置格式化一个数字。你也可以使用非缺省的地区设置,例如德国。然后格式化方法根据特定的地区规则格式化数字。这个程序也可以使用一个简单的形式:
NumberFormat.getInstance().format(1234.56)
但是保存一个格式然后重用更加有效。国际化是格式化数字时的一个大问题。
另一个是对格式的有效控制,例如指定小数部分的位数,下面是解决这个问题的一个简单例子:
import java.text.DecimalFormat;
import java.util.Locale;
public class DecimalFormat2 {
public static void main(String args[]) {
// 得到本地的缺省格式
DecimalFormat df1 = new DecimalFormat("####.000");
System.out.println(df1.format(1234.56));
// 得到德国的格式
Locale.setDefault(Locale.GERMAN);
DecimalFormat df2 = new DecimalFormat("####.000");
System.out.println(df2.format(1234.56));
}
}
在这个例子中设置了数字的格式,使用像"####.000"的符号。这个模式意味着在小数点前有四个数字,如果不够就空着,小数点后有三位数字,不足用0补齐。程序的输出:
1234.560
1234,560
相似的,也可以控制指数形式的格式,例如:
import java.text.DecimalFormat;
public class DecimalFormat3 {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("0.000E0000");
System.out.println(df.format(1234.56));
}
}
输出:
1.235E0003
对于百分数:
import java.text.NumberFormat;
public class DecimalFormat4 {
public static void main(String args[]) {
NumberFormat nf = NumberFormat.getPercentInstance();
System.out.println(nf.format(0.47));
}
}
输出:
47%
至此,你已经看到了格式化数字的几个不同的技术。另一方面,如何读取并解析包含格式化的数字的字符串?解析支持包含在NumberFormat中。例如:
import java.util.Locale;
import java.text.NumberFormat;
import java.text.ParseException;
public class DecimalFormat5 {
public static void main(String args[]) {
// 本地格式
NumberFormat nf1 = NumberFormat.getInstance();
Object obj1 = null;
// 基于格式的解析
try {
obj1 = nf1.parse("1234,56");
}
catch (ParseException e1) {
System.err.println(e1);
}
System.out.println(obj1);
// 德国格式
NumberFormat nf2 =NumberFormat.getInstance(Locale.GERMAN);
Object obj2 = null;
// 基于格式的解析
try {
obj2 = nf2.parse("1234,56");
}
catch (ParseException e2) {
System.err.println(e2);
}
System.out.println(obj2);
}
}
这个例子分两部分,都是解析一个字符串:"1234,56"。第一部分使用本地格式解析,第二部分使用德国格式解析。当程序在美国运行,结果是:
123456
1234.56
换句话说,"1234,56"在美国被认为是一个巨大的整数"123456"而在德国被认为是一个小数"1234.56"。
3.4.    DecimalFormat 和 NumberFormat的联系
在上面的例子中, DecimalFormat 和 NumberFormat 都被使用了。DecimalFormat 常用于获得很好的格式控制,而NumberFormat 常用于指定不同于本地的地区。如何结合两个类呢?
答案围绕着这样的事实:DecimalFormat是NumberFormat的一个子类,其实例被指定为特定的地区。因此,你可以使用NumberFormat.getInstance 指定一个地区,然后将结构强制转换为一个DecimalFormat对象。文档中提到这个技术可以在大多情况下适用,但是你需要用try/catch 块包围强制转换以防转换不能正常工作 (大概在非常不明显得情况下使用一个奇异的地区)。下面是一个这样的例子:
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class DecimalFormat6 {
public static void main(String args[]) {
DecimalFormat df = null;
// 得到一个NumberFormat 对象并
// 强制转换为一个 DecimalFormat 对象
try {
df = (DecimalFormat)NumberFormat.getInstance(Locale.GERMAN);
}
catch (ClassCastException e) {
System.err.println(e);
}
// 设置格式模式
df.applyPattern("####.00000");
// format a number
System.out.println(df.format(1234.56));
}
}
getInstance() 方法获得格式,然后调用applyPattern()方法设置格式模式,输出:
1234,56000
如果你不关心国际化,可以直接使用DecimalFormat 。
其中v 为未处理的double,scale为需求精度,返回需要小数位数的double
public static double round(double v,int scale){
        if(scale<0){
            throw new IllegalArgumentException(
                "The scale must be a positive integer or zero");
        }
        BigDecimal b = new BigDecimal(Double.toString(v));
        BigDecimal one = new BigDecimal("1");
        return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
    }
LLM推理服务中的SLO感知调度优化实践 在AI服务架构中,服务级别目标(SLO)是衡量服务质量的核心指标,特别是在大型语言模型(LLM)推理场景下。SLO通常涉及TTFT(首token时间)、TPOT(每token生成时间)和端到端延迟等关键维度,这些指标直接影响用户体验和系统效率。传统FCFS调度策略由于缺乏SLO感知能力,在混合负载下往往导致资源利用率低下和SLO达标率骤降。通过引入基于模拟退火的动态调度算法和精准的延迟预测模型,可以实现对不同优先级请求的智能调度,显著提升GPU利用率和SLO达标率。这种技术方案特别适用于需要同时处理实时对话 阅读详情

相关推荐

写给音响工程师的科普文章(二)——从模电角度去了解调音台话放

    上一篇讲到调音台第一级放大电路为差分放大器,关于差分放大器的基础知识可以参考以下资料:https://wenku.baidu.com/view/e6a46aaa2af90242a995e537 在教材中的差分放大器基本形式是这样子的,在实际电路中把RE电阻换成两个2倍RE,于是变成这样 然后我们现在来对比调音台中的差分放大器和教材中的有什么区别,我就拿yamaha 01V 96来说...

huanghaoAudio的博客 7702

DecimalFormat保留小数位

项目中用到了这个格式“#.00”,简单介绍下这个符号的区别:#:在整数位时表示该位没有数字时也保持一致,如上例子 .123=> .12,有则直接显示;在小数位时表示n个#只保留n位有效小数(比如 #.## 1.00不保留=> 1,1.11则保留=>1.11) 0: 表示该位没有数字时补零显示,有则直接显示;出现在小数位部分时,n个0表示保留n位小数

studyday1的博客 1315

Chipyard------介绍与环境搭建

Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。

qq_38798111的博客 9479

格式化输出数字

 翻译:Cheramiemail:cherami@163.net原文:http://developer.java.sun.com/developer/TechTips/2000/tt0411.html有时我们需要控制输出的数字的格式,如何使用java的类库做到这个呢?也许你不关心格式,但是你需要关心你的程序可以在全世界通用,像下面的这样一个简单的语句是依赖地区的:    System.out.pr

zaowei21的专栏 4059

MOS管驱动电路设计全攻略

MOS管驱动电路设计全攻略

让你爱上电路设计 3634

软件产品国际化:前后端及App多语言版本解决方案(超详细实现过程)

多语言版本解决方案是应对全球化趋势的关键策略,它通过构建灵活且可扩展的架构,支持软件产品在不同语言和文化环境下的顺畅运行与展示。此方案涵盖了前端多语言界面实现、后端多语言数据处理及大数据环境下的多语言支持等多个层面,确保公司能够高效地推出适应全球用户多样化需求的软件产品。在前端多语言界面实现方面,解决方案采用了国际化与本地化的结合方法。国际化过程确保软件的功能和代码设计能够处理多种语言和文化习惯,而本地化则针对特定地区进行界面和内容的调整。

大模型大数据攻城狮的专栏 2753

DecimalFormat 输出指定格式的数字

DecimalFormat df = new DecimalFormat("0.00"); DecimalFormat df = new DecimalFormat("#.00"); 这里的0跟#有什么区别? Double.valueOf(920.063);//把920.063转成Double 实例 实例 Double.parseDouble("920.239");//把字符串"920.239

hwm的专栏 2547

RK平台PCIE-Ethernet扩展:Intel I210移植与性能飞升之路

本文详细介绍了Intel I210千兆以太网控制器在瑞芯微RK平台的移植与优化过程。通过硬件适配、内核配置、驱动开发及性能调优四个关键环节,实现了RK平台的网络性能提升。硬件方面,重点说明了PCIE接口的规范连接与供电检查;软件方面,系统阐述了内核配置、设备树修改和驱动编译流程。在性能优化环节,详细介绍了中断优化、缓冲区设置和TCP/IP协议栈调优策略,并采用Iperf和Netperf工具进行量化测试验证。测试结果显示,优化后的网络吞吐量提升20%以上,延迟降低40%,为工业控制、智能安防等场景提供了可靠的

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 352

DecimalFormat(取舍问题,DecimalFormat四舍五入的坑)

舍入方式

ZJLOVE的博客 2858

Oracle EBS和华为MetaERP在会计科目(COA)设计上的观察非常精准。这两种设计确实代表了两种截然不同的系统架构思想,我们可以从设计哲学、优劣对比和演进关系三个方面进行深入分析。

OracleEBS与华为MetaERP的COA设计对比分析 OracleEBS采用弹性域架构,通过固定段数字符串实现多维度核算,强调稳定性和全球统一标准,但修改成本高、扩展性受限。华为MetaERP采用解耦架构,将核算单元、自然科目和核算维度分离,支持动态扩展和灵活调整,更适合业务快速变化的企业。 OracleEBS优势在于强一致性和成熟稳定,劣势是灵活性差;华为MetaERP优势是极致灵活性,劣势是对管理要求高。两者代表了不同时代的企业软件设计理念:OracleEBS适合标准化需求,MetaERP则面向快

金牌架构师 429

ISO13849功能安全从入门到精通(3):安全功能及其对降低风险的贡献4

例如,如果机器必须在有限速度下运行时进行设置,那么在低加速度值下进行设置时,参数P1将是正确的选择:随着危险缓慢出现并给予足够的运动自由,操作员将能够移出危险区域。例如,在无故障的条件下,在操作者的手的方向移动的滚子不能陷住它。在所有其他情况下,F1是正确的选择,前提是危险暴露的持续时间不超过机器总操作时间的1/20。需求来源于必要的风险降低。由于这些考虑而降低的PLr在任何情况下都不得低于通过比较方式考虑的机器的PLr,因为并不能从事故发生率低和严重程度低得出实施的安全功能提供的安全水平高于要求。

wdconan001的博客 834

DecimalFormat-java数字格式化类应用

一、简介 DecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字。 二、代码 public static void main(String[] args) { DecimalFormat decimalFormat = new DecimalFormat(".###"); double num = 3.1415...

BD_fuhong的博客 734

AI Agent在医疗诊断中的智能应用研究

本文探讨了AIAgent在医疗诊断中的智能应用,分析了其技术原理、实际案例及发展挑战。AIAgent通过机器学习算法处理医疗数据,提升诊断准确性和效率,市场规模预计2025年达200亿美元。核心技术包括数据预处理、深度学习模型和隐私保护方法。应用案例涵盖肺癌筛查、阿尔茨海默病预测等,但面临数据偏差、伦理责任等挑战。未来趋势包括多模态学习、个性化医疗和量子计算融合。随着技术优化和伦理完善,AIAgent将成为医疗体系的重要组成部分。

郑伟强dev的专栏 96

DecimalFormat的几种用法!

DecimalFormat的几种用法! 转载▼           NumberFormat.getInstance()方法返回NumberFormat的一个实例(实际上是NumberFormat具体的一个子类,例如DecimalFormat), 这适合根据本地设置格式化一个数字。你也可以使用非缺省的地区设置,例如德国。然后格式化方法根据特定的地区规则格式化数字。这个程序也可

JAVA_96的博客 4428

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java数字格式化-DecimalFormat的用法

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。 DecimalFormat 包含一个模式 和一组符号 符号含义: 0 一个数字 一个数字,不包括 0 . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式。 缺省负数前缀。 % 乘以 100 和作为百分比显示 ? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用 国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代 替十进制分隔符。 X 前缀或后缀中使用的任何其它字符,

qq_43211295的博客 893

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java 使用 DecimalFormat 保留小数

[java] view plain copy print? java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");            java.text.DecimalFormat df2 = new java.text.DecimalFormat("0.0000");   jav

litianao的博客 1347

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java中使用DecimalFormat保留两位小数,同时不保留0

import java.text.DecimalFormat; /** * Created by laozhu on 2018/4/10. */ public class Helo { public static void main(String[] s){ DecimalFormat decimalFormat = new DecimalFormat("0.#...

水草葫芦娃的博客 9172

Java编程对于Math里的sqrt与pow的double数据的相等问题——BigDecimal和 DecimalFormat实现

System.out.println((a*a+b*b)+" " +(c*c)+" " +Math.pow(c, 2)+" " +(new BigDecimal(Math.pow(c, 2))).doubleValue() +" "+(new BigDecimal(Math.pow(c, 2))).setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue()+" "+Double.parseDouble((new DecimalFormat(".00").forma

qq_28096687的博客 2150

JavaDemo——格式化SimpleDateFormat、DecimalFormat、ChoiceFormat、MessageFormat、String.format

格式化时间: SimpleDateFormat的使用 /** * createtime : 2018年8月31日 下午5:21:05 */ package formattest; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; /** * TODO * @auth...

FlyLikeButterfly的博客 1370

Java保留两位小数的几种写法

相信大家在平时做项目时,可能会有这样的业务需求: 页面或界面上展示的数据保留小数点后两位。 本文列举了几个方法: 使用java.math.BigDecimal 使用java.text.DecimalFormat ...

chikao1673的博客 384

Java中Double保留后小数位的几种方法

最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese").trim())就可以实现,但因为是统计成绩,所以需要保留小数点后两位,所以各种百度发现了很多解决方法,这里特意总结下,万一以后又用上了呢? 返回double型的 1.能四舍五入 1 double...

weixin_30670925的博客 478

java对赋值数四舍五入保留两位小数_Java:对double值进行四舍五入,保留两位小数的几种方法...

1. 功能将程序中的double值精确到小数点后两位。可以四舍五入,也可以直接截断。比如:输入12345.6789,输出可以是12345.68也可以是12345.67。至于是否需要四舍五入,可以通过参数来决定(RoundingMode.UP/RoundingMode.DOWN等参数)。2. 实现代码package com.clzhang.sample;import java.math.BigDec...

weixin_33741534的博客 401
上一篇: 下载文件迅雷不支持问题的原因
下一篇: 多线程生产者和消费者
lb8607
博客等级 码龄18年 17粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值