小编Gij*_*iet的帖子

将Locale特定String转换为BigDecimal的最佳方法

我必须将德语区域设置格式化的String转换为BigDecimal.但是,我正在努力寻找最佳解决方案.

以下代码显示了我的问题:

    String numberString = "2.105,88";

    NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
    try {
        Number parsed = nf.parse(numberString);
        BigDecimal bd1 = new BigDecimal(parsed.toString());
        System.out.println(bd1.toString());

        BigDecimal bd2 = new BigDecimal(parsed.doubleValue());
        System.out.println(bd2);

        BigDecimal bd3 = new BigDecimal(numberString);
        System.out.println(bd3);

    } catch (ParseException e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

这个的出局是

2105.88

2105.8800000000001091393642127513885498046875

java.math.BigDecimal中的java"主要"java.lang.NumberFormatException中的异常java.math.BigDecimal.(未知来源)test.BigDecimalTest.main(BigDecimalTest.java:22)

第一输出是正确的,但它并没有真正意义的一个转换StringNumber(Double要准确),然后回String再次,然后进入特定类型的Number,BigDecimal.

第二个输出不正确,但可以通过设置BigDecimal的比例来解决.但是,数字量并不总是已知.

第三个输出显然不是我想要的.

我的问题是,最好的方法是什么?有没有更好的方法来做到这一点?

java bigdecimal

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

IllegalAnnotationsException:Class有两个同名的属性

我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务.由于我是初学者,因此我遵循Java类第一种方法,即我首先创建Java类,然后生成WSDL文件.

当我尝试创建wsdl文件时,我得到一个例外:

java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationsException的1个计数Class有两个同名的属性"planId"

我的班级在这里看起来像这样:

public class MemberDetails{
    @XMLElement(required=true)
    private String planId;
    //public getters and setters for the planId;
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种异常.通过谷歌搜索,我尝试了一些替代方案来解决它,但没有一个为我工作:(

注意:

这是我在整个工作区中使用的唯一注释.我不确定这是否依赖于其他一些注释.但我尝试了一些诸如@XMLElement(name ="Plan",required = true),@ XMLType等,但每次我都得到这个例外.

这个例外是在wsgen期间发生的.(java.lang.reflect.InvocationTargetException)

编辑

基本上,当我们从java服务方法创建一个wsdl并在SOAP UI中打开该WSDL时,我们就会<!--Optional-->在每个元素的顶部.我想删除这个选项标记<!--Optional-->标记,因此我尝试使用@XMLElement(required = true)方法,这样当我在SOAP UI <!--Optional-->中打开WSDL时,不会出现强制性元素.

根据我的概念,@ XMLElement(required = true)将minOccurs设置为1,即大于零,因此当我在SOAP UI中打开它时,可选的注释将从WSDL中删除.但不幸的是它没有用,因此我的概念不正确.生成WSDL之后,我可以看到minOccurs仍为0.

请解释在SOAP UI中打开WSDL时如何删除可选标记.

问候,

java xml web-services jaxb

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

在预期时不抛出java.util.ConcurrentModificationException

以下代码按预期抛出java.util.ConcurrentModificationException:

   public void test(){
      ArrayList<String> myList = new ArrayList<String>();

      myList.add("String 1");
      myList.add("String 2");
      myList.add("String 3");
      myList.add("String 4");
      myList.add("String 5");

      for(String s : myList){
         if (s.equals("String 2")){
            myList.remove(s);
         }
      }
   }
Run Code Online (Sandbox Code Playgroud)

但是,下面的代码并没有抛出异常,而我希望它被抛出:

   public void test(){
      ArrayList<String> myList = new ArrayList<String>();

      myList.add("String 1");
      myList.add("String 2");
      myList.add("String 3");

      for(String s : myList){
         if (s.equals("String 2")){
            myList.remove(s);
         }
      }
   }
Run Code Online (Sandbox Code Playgroud)

区别在于第一个列表包含5个项目,而第二个列表包含3.使用的JVM是:

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
Run Code Online (Sandbox Code Playgroud)

问题:为什么第二段代码 …

java exception

15
推荐指数
2
解决办法
1897
查看次数

SSRS与Azure SQL报告 - 成本和实施

我目前使用Azure报告和报告构建器为演示项目实现了一些报告.现在我们将正确地开发报告我有一些关于SSRS的问题.

  1. 我们需要订阅和安排,所以我想我们必须设置一个SSRS服务器,这可以托管在Azure上还是一个好地方?我们没有自己的服务器.
  2. 许可需要多少费用?
  3. 我们的应用程序是一个MVC 4应用程序,我相信这可能会导致托管报表查看器的问题(没有回发帖).运行报告的综合体验的最佳方法是什么?

谢谢

reporting azure reporting-services

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