标签: decimalformat

负面模式有什么用?

负面模式有什么用?

NumberFormat nf = NumberFormat.getPercentInstance(Locale.ITALY);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern("###,###.###;(###,###.###)");
System.err.println(df.format(-12.45));//output (12,45);
Run Code Online (Sandbox Code Playgroud)

它会在什么情况下有用?不仅仅是一个模块吗?

java text decimalformat

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

使用DecimalFormat获取不同数量的小数位

所以我想使用Decimal Format类来舍入数字:

double value = 10.555;

DecimalFormat fmt = new DecimalFormat ("0.##");

System.out.println(fmt.format(value));
Run Code Online (Sandbox Code Playgroud)

这里,变量value将四舍五入到2位小数,因为有两个#s.但是,我想要舍入value到未知的小数位数,由一个单独的整数表示numPlaces.有没有办法通过使用十进制格式化器来实现这一目标?

例如,如果numPlaces = 3value = 10.555,则value需要四舍五入到小数点后3位

java string decimalformat

4
推荐指数
2
解决办法
3026
查看次数

java.lang.IllegalArgumentException:类java.text.DecimalFormat声明多个名为maximumIntegerDigits的JSON字段

我正在对servlet进行ajax调用。我希望数据从servlet返回到jsp:

PrintWriter out = response.getWriter();
    String isbn = (String) request.getParameter("isbn");
    BookDetail bd = new BookDetail();
    if(bd.ISBNFound(isbn)){
    ArrayList<KitapData> Books = bd.LoadBooksByISBN(isbn);

    Gson gson = new Gson();
    String json = gson.toJson(Books);
    response.setContentType("application/json");
    System.out.print(json);      
    out.print(json);
}
Run Code Online (Sandbox Code Playgroud)

我在类路径中添加了GSon.jar。但是我遇到了一些错误:完整列表如下:我在这里缺少什么?

WARNING:   StandardWrapperValve[Book_CheckISBN]: Servlet.service() for servlet Book_CheckISBN threw exception
java.lang.IllegalArgumentException: class java.text.DecimalFormat declares multiple JSON fields named maximumIntegerDigits
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
    at com.google.gson.Gson.getAdapter(Gson.java:356)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
    at com.google.gson.Gson.getAdapter(Gson.java:356)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:55)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
    at com.google.gson.Gson.toJson(Gson.java:593)
    at com.google.gson.Gson.toJson(Gson.java:572)
    at com.google.gson.Gson.toJson(Gson.java:527)
    at …
Run Code Online (Sandbox Code Playgroud)

java illegalargumentexception decimalformat gson

4
推荐指数
2
解决办法
7668
查看次数

如果不是零,则格式化float以显示小数位

我需要仅在与零不同时显示浮点值的小数位.

  1. 5.0应显示为5.
  2. 7.3应显示为7.3.
  3. 9.000003应显示为9.000003.

如何使用正则表达式或DecimalFormat以这种方式格式化?

java regex floating-point decimalformat

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

DecimalFormat.applyPattern("#.##0,00") 抛出异常

对于代码:

DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(locale);
df.applyPattern("#.##0,00");
Run Code Online (Sandbox Code Playgroud)

它抛出一个 IllegalArgumentException 并带有格式错误的模式“#.##0,00”的消息

这有什么问题?

编辑:我想使用 . 作为千位分隔符和 , 作为小数点。我知道这是倒退,但有一个案例,那就是他们想要的格式。

java decimalformat

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

将十进制输入插入 CRM 365

我正在使用 CRM REST Builder 来构建我的请求。我正在从中创建一个网络资源,我正在插入一条带十进制输入的记录。从十进制输入中输入数字时,会显示此错误:

由于输入格式字符串/数字与参数“IEEE754Compatible”false/true 之间的冲突,无法将值转换为目标类型“Edm.Decimal”。

请帮忙。

javascript crm dynamics-crm decimalformat dynamics-365

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

Java Math RoundingMode.HALF_EVEN不同的结果

看来,HALF_EVEN舍入模式在Java中的工作方式不同DecimalFormatBigDecimal.有什么办法DecimalFormat可以保持一致吗?

// Using BigDecimal scale
System.out.println("Big decimal scale (HALF_EVEN) of 21.255 ==> " + new BigDecimal("21.255").setScale(2, RoundingMode.HALF_EVEN));
System.out.println("Big decimal scale (HALF_EVEN) of 21.265 ==> " + new BigDecimal("21.265").setScale(2, RoundingMode.HALF_EVEN));

// Using DecimalFormat
DecimalFormat cdf = new DecimalFormat("#,##0.00");
cdf.setRoundingMode(RoundingMode.HALF_EVEN); // default anyway
System.out.println("Decimal format (HALF_EVEN) of 21.255 ==> " + cdf.format(21.255));
System.out.println("Decimal format (HALF_EVEN) of 21.265 ==> " + cdf.format(21.265));

Output:
Big decimal scale (HALF_EVEN) of 21.255 ==> 21.26
Big decimal scale (HALF_EVEN) …
Run Code Online (Sandbox Code Playgroud)

java double rounding bigdecimal decimalformat

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

使用DecimalFormat的问题

DecimalFormat当我要在回归后打印出系数时,我遇到了问题.

这是代码中遇到问题的部分;

DecimalFormat twoDForm = new DecimalFormat("0.00");   
private double s(double d){  
    return Double.valueOf(twoDForm.format(d));  
}  
Run Code Online (Sandbox Code Playgroud)

这是eclipse中的错误信息;

Exception in thread "main" java.lang.NumberFormatException: For input string: "0,16"  
 at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)  
 at java.lang.Double.valueOf(Unknown Source)  
 at model.ARF2.s(ARF2.java:126)  
 at model.ARF2.printBestModel(ARF2.java:114)  
 at testing.testclass3.bestForecastingModel(testclass3.java:69)  
 at testing.testclass3.main(testclass3.java:36)  
Run Code Online (Sandbox Code Playgroud)

如果有人对如何修复代码有任何激增,请告诉我.我想要系数上的两位小数.

谢谢

拉尔斯

java decimalformat

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

NumberFormat Parse问题

我对将字符串解析为Double时遇到的这种特殊"错误"感到困惑.

我已经设置了NumberFormat属性和符号.

传递带有15位和2位小数的字符串(例如str = "333333333333333,33")并使用Number num = NumberFormat.parse(str)结果解析它时省略数字.

num的实际值是3.333333333333333E14.

它似乎与Strings一起使用所有1,2和4但是......

谁能开导我?

干杯恩里科

java floating-accuracy dataformat decimalformat

3
推荐指数
2
解决办法
1344
查看次数

所有double的Java总和不返回预期结果

可能重复:
在double中移动小数位

为什么以下数字总和不等于0.4622?但0.46219999999999994

Double total = new Double(0.08) + new Double(0.0491) + new Double(0.3218) + 
         new Double(0.0113) + new Double(0.0); // = 0.46219999999999994
Run Code Online (Sandbox Code Playgroud)

我有一个检查用户输入的应用程序.

用户输入5个十进制数和一个总数.应用程序检查komma后面4位小数的所有5个数字的总和是否等于总数.

限制它给了我0.4621不等于0.4622.我不能使用DecimalFormat,因为它将它向上舍入.如果我明确地说,向下舍入,那么这种情况就会失败.

关于如何解决这个问题的任何建议?

java double sum floating-accuracy decimalformat

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