jjzjj

decimalformat

全部标签

java - 如何转义要传递给 DecimalFormat 的字符串

我可以知道如何将字符串转义为十进制格式吗?//currencySymbolPrefixcanbeanystring.NumberFormatnumberFormat=newDecimalFormat(currencySymbolPrefix+"#,##0.00");如何转义currencySymbolPrefix,以便它可以包含包括“#”在内的任何字符,并且不会被解释为模式之一。请勿推荐NumberFormatnumberFormat=newDecimalFormat("#,##0.00");finalStringoutput=currencySymbolPrefix+numberFo

java - 在 Apache Poi 3.7 中以特定格式在数字单元格中写入 Double 值

我需要使用特定格式在数字单元格中写入double值,我的意思是,生成的xls必须具有包含double值的数字单元格,例如:8,1。我正在尝试类似的东西:DecimalFormatdFormat=newDecimalFormat("##.#");dFormat.format(doubleValue);但是,由于格式化方法返回一个字符串,无论我是否将单元格创建为数字,它们始终表现为文本单元格。我在考虑两种选择:强制单元格表现为数字单元格。忘记DecimalFormat并使用Double类指定逗号作为小数点分隔符,但我不确定是否可行。有什么想法吗? 最佳答案

java - 在 Java 中使用 DecimalFormat 进行舍入

让我们看一下Java中的以下语句。System.out.println(newDecimalFormat("0").format(2.4));//returns2System.out.println(newDecimalFormat("0").format(2.5));//returns2在上述陈述中,除以下情况外,所有其他情况都是显而易见的。System.out.println(newDecimalFormat("0").format(2.5));它应该返回3但它返回2。怎么办? 最佳答案 DecimalFormat的默认舍入方式

带有货币符号的 Java String.format

有一些现有的代码,其格式如下:String.format(pattern,value)请注意,我无法更改代码本身-我只能更改提供给代码的格式模式。为默认语言环境输出货币符号的格式模式是什么?本质上,我想实现以下输出:String.format("...",123)=>$123 最佳答案 无需重新发明轮子。DecimalFormat附带货币支持:Stringoutput=DecimalFormat.getCurrencyInstance().format(123.45);这还通过可选地传入Locale来提供完整的语言环境支持。:Str

java - 格式化 float

我有一个double类型的变量,我需要以最多3位小数的精度打印它,但它不应该有任何尾随零...例如。我需要2.5//not2.5002//not2.0001.375//exactlytill3decimals2.12//not2.120我尝试使用DecimalFormatter,我做错了吗?DecimalFormatmyFormatter=newDecimalFormat("0.000");myFormatter.setDecimalSeparatorAlwaysShown(false);谢谢。:) 最佳答案 尝试使用模式"0.##

java - DecimalFormat 将数字转换为非数字

使用DecimalFormat在使用这种数字时不会出现解析异常:123你好这显然不是真正的数字,并转换为123.0值。我怎样才能避免这种行为?作为旁注,hello123确实给出了一个异常(exception),这是正确的。谢谢,马塞尔 最佳答案 要进行精确解析,您可以使用publicNumberparse(Stringtext,ParsePositionpos)将pos初始化为0,完成后它将为您提供最后一个使用的字符之后的索引。然后您可以将其与字符串长度进行比较,以确保解析准确。http://download.oracle.com/

java - 为什么此代码中未遵循模式字符串?

执行以下代码时:DecimalFormateNotation1=newDecimalFormat("#0.###E0");System.out.println(eNotation1.format(123.456789));我的预期输出是;1.235E2相反,1.2346E2已打印。为什么输出是1.2346E2?我知道我可以使用像setMaximumFractionDigits()这样的方法,如果我只想设置小数点后的最大位数,但我真的很想了解为什么输出是1.2346E2 最佳答案 如果你想要那个确切的格式,那么使用模式0.000E0:

java - 比 DecimalFormat.format() 更快的替代方法?

为了提高其性能,我一直在使用VisualVM采样器分析我的一个应用程序,使用的最小采样周期为20毫秒。根据分析器,主线程将近四分之一的CPU时间花在DecimalFormat.format()上。方法。我将DecimalFormat.format()与0.000000模式一起使用,以将double数字“转换”为恰好六位小数的字符串表示形式数字。我知道这种方法相对昂贵,而且它被调用了很多次,但我还是对这些结果感到有些惊讶。这种采样分析器的结果在多大程度上是准确的?我将如何验证它们-最好不求助于仪器分析器?对于我的用例,是否有比DecimalFormat更快的替代方案?推出我自己的Numb

【Java基础教程】(三十六)常用类库篇 · 第六讲:数学运算类——全面讲解Java数学计算支持类库,BigDecimal、Math、Random、DecimalFormat...~

Java基础教程之常用类库·数学运算类1️⃣概念🔍数学运算类汇总2️⃣优势和缺点3️⃣使用3.1各数学计算支持类使用案例3.2Math类3.3BigDecimal类3.4Random类3.5DecimalFormat类4️⃣应用场景5️⃣使用技巧🌾总结📑本文源码下载地址1️⃣概念在现代软件开发中,数学计算是不可或缺的一部分。为了满足企业及开发人员对数学运算的需求,Java提供了一系列强大而丰富的数学计算相关类,其中包括Math、Random、BigDecimal等等。这些类旨在提供高度精确和可靠的数学操作,使开发人员能够处理任何规模和复杂度的定量问题。🔍数学运算类汇总将Java中所有用于表示数

java - double 、逗号和点

我正在制作一个AndroidJava程序,它从用户那里获取double值。如果我在计算机上运行该程序,由于我计算机的语言环境EN_UK,它运行良好。但是当我用FI_FI语言环境在我的手机上运行它时,它就不起作用了。我知道原因:在英国,人们使用点作为小数分隔符,但在芬兰,小数分隔符是逗号。DecimalFormatdf=newDecimalFormat("#.#");DoublereturnValue=Double.valueOf(df.format(doubleNumber));当我使用逗号时,它会显示java.lang.NumberFormatException:Invaliddou