相关疑难解决方法(0)

将Double值格式化为2个小数位的最佳方法

可能重复:
将小数点后的双精度数加到2位有效数字

我在我的应用程序中处理了很多双值,是否有任何简单的方法来处理Java中十进制值的格式?

还有其他更好的办法吗?

 DecimalFormat df = new DecimalFormat("#.##");
Run Code Online (Sandbox Code Playgroud)

我想要做的基本上是格式双值

23.59004  to 23.59

35.7  to 35.70

3.0 to 3.00

9 to 9.00
Run Code Online (Sandbox Code Playgroud)

java

292
推荐指数
2
解决办法
65万
查看次数

强制点(".")作为java中的小数分隔符

我目前使用以下代码打印双:

return String.format("%.2f", someDouble);
Run Code Online (Sandbox Code Playgroud)

这很有效,除了Java使用我的Locale的小数分隔符(逗号),而我想使用一个点.是否有捷径可寻?

java double formatting

96
推荐指数
4
解决办法
8万
查看次数

Java货币编号格式

有没有办法格式化小数如下:

100   -> "100"  
100.1 -> "100.10"
Run Code Online (Sandbox Code Playgroud)

如果是圆数,则省略小数部分.否则格式化为两位小数.

java currency number-formatting

81
推荐指数
11
解决办法
35万
查看次数

如何设置eclipse控制台语言环境/语言

使用Eclipse(Helios)开发Web应用程序时,tomcat输出将被发送到控制台.好的,但是消息正在翻译成我的操作系统语言.

事实上,我的Eclipse是英文版,但Tomcat输出(日志记录)正在翻译成葡萄牙语.可能是Tomcat配置问题,但我无法找到...

我该如何改变这种行为?我希望我的整个Eclipse都是英文的,包括Tomcat.

java eclipse

33
推荐指数
3
解决办法
5万
查看次数

Java - Decimal Format.parse返回具有指定小数位数的double值

我希望能够在格式字符串中给出一些小数位,将字符串转换为Double.所以"###,## 0.000"应该给我一个Double到3的小数位.

编辑 - 为发生的事情添加了更多信息

用户在UI中输入值 - 输入到String中.规则是此值限制为3位小数.底层代码将值存储在数据库中,然后在计算中使用.因此,尾随小数位将导致计算略微超出预期.

我有以下代码:

try {
        // output current locale we are running under (this happens to be "nl_BE")
        System.out.println( "Current Locale is " + Locale.getDefault().toString() );

        // number in Central European Format with a format string specified in UK format
        String numberCE = "1,234567"; // 1.234567
        String formatUK = "###,##0.000";

        // do the format
        DecimalFormat formatterUK = new DecimalFormat( formatUK );
        Double valCEWithUKFormat = formatterUK.parse( numberCE ).doubleValue();

        // I want …
Run Code Online (Sandbox Code Playgroud)

java parsing decimal rounding decimalformat

12
推荐指数
2
解决办法
6万
查看次数

Java 11 和 Java 8 DecimalFormat 行为之间的差异

我在 Java 11 上遇到了一个奇怪的问题。我正在移植一个巨大的项目,我有一些使用 DecimalFormat 的测试在 11 构建上失败,但在 8 构建上没有。

Java 11 中的 DecimalFormat 给了我一个逗号小数点分隔符,而在 Java 8 上它给了我一个点。

这是一个最小的可重现示例:

import java.text.DecimalFormat;

public class Test {

  public static void main(String[] args) {
    DecimalFormat format = new DecimalFormat("#0.00");
    System.out.println(format.format(1.02));
  }
}
Run Code Online (Sandbox Code Playgroud)

1.02在 Java 8 和1,02Java 11 上输出。

这是使用两个版本构建和运行示例的整个终端会话:

~ » sdk use java 8.0.282.hs-adpt

Using java version 8.0.282.hs-adpt in this shell.

~ » javac -version 
javac 1.8.0_282

~ » javac Test.java                                   

~ » java -version                                                                                                                                                                                                       
openjdk version "1.8.0_282" …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-11

4
推荐指数
1
解决办法
477
查看次数

在Java中将格式化为两位小数会产生逗号而不是点

我已经阅读了很多线程,似乎是在我的双号中保留2个位置的最佳解决方案:

DecimalFormat df = new DecimalFormat("#.00");
double d = 1.234567;
System.out.println(df.format(d));
Run Code Online (Sandbox Code Playgroud)

但是当我使用它时,它会打印:

1,23

我想保留DOT,因为我需要使用这种格式(#.##)(我将它用作字符串).我该如何保留这个点?

java double number-formatting

3
推荐指数
1
解决办法
3932
查看次数

DecimalFormat"模式中的多个小数分隔符"

我想将十进制值格式化为货币值:1234.56d应变为"1.234,56"(此格式在某些欧洲国家/地区使用).我使用以下模式格式化十进制值:

final DecimalFormat df = new DecimalFormat("###.###.###,00");
final String formatted = df.format(1234.56d);
System.out.println(formatted);
Run Code Online (Sandbox Code Playgroud)

事实上我正在使用SuperCSV的类FmtNumber,但这没关系,因为模式语法是相同的:new FmtNumber("###.###.###,00");

我得到的是IllegalArgumentException,消息"模式中有多个小数分隔符".

我知道只能有一个小数分隔符.但就我而言,它应该是","的标志.并且","在我的模式中只出现一次.

我搜索了Web和StackOverflow这个异常消息,但我没有找到有用的答案.

我的错误是什么?

java formatting supercsv

1
推荐指数
1
解决办法
5936
查看次数

大十进制舍入到两位小数总是(即使我的BigDecimal对象没有小数)?

如何将BigDecimal对象始终舍入为2位小数(即使我的BigDecimal对象没有小数)?

我正在做:

myBigDecimal.setScale(2, RoundingMode.HALF_UP); // works fine when it has decimals
Run Code Online (Sandbox Code Playgroud)

上下文:我有一个POJO列表,当我发送到前端时,我在ExtJs中给它们格式

我也在生成一个CSV文件,并且我被要求所有经济领域都有2位小数.

任何想法或工作?

谢谢

java rounding bigdecimal

1
推荐指数
1
解决办法
529
查看次数

java中的格式字符串

如何用逗号格式化字符串以currentny格式显示?

假设传入的字符串是一个很大的数字.例如:

"1234567901234567890123456"

我希望结果如下:

"12,345,678,901,234,567,890,123,456"

DecimalFormatJava中有一个限制格式化一个大数目.

java number-formatting

-5
推荐指数
1
解决办法
171
查看次数