解析字符串双 - java的(Parsing string to double - java)

2019-08-02 04:21发布

对于一个项目,我有一个程序,就像一个银行。 该“银行”读取与它看起来像这样的账户文件:
磨坊主
威廉
00001
891692 06 <----串需要被转换为double
最后一个字符串必须转换为double,使程序可以像加减法等对执行它的计算
同时,我必须把它打印出来的货币格式,即$ 891692.06

我有这个至今:

 public class Account {
      private String firstName, lastName;
      private int accountID;
      private String currentBalance; 

      private static int maxAccountID;

      public Account(String fN, String lN, int acct, String bal) {
         firstName = fN; lastName = lN;
         accountID = acct;
         currentBalance = bal;
         if(accountID > Account.maxAccountID)
            Account.maxAccountID = accountID;
      }     

  public double getBalance(){
        String [] s = currentBalance.split(" ");
        String balStr = "$"+s[0]+"."+s[1];
            double currentBalance = Double.parseDouble(balStr);
         return currentBalance;
      }
}

提前致谢!

Answer 1:

如果您代表串double用途的空间' ' ,而不是一个小数点,则可以通过以点代替的空间,这样的修正:

String currentBalanceStr = "891692 06";
double currentBalanceDbl = Double.parseDouble(currentBalanceStr.replaceAll(" ","."));

链接ideone。



Answer 2:

使用Double的平衡计算是不是一个好主意,这让使用更感BigDecimal ,因为它更精确。

您还可以使用类波纹管加上货币:

Locale enUSLocale =
    new Locale.Builder().setLanguage("en").setRegion("US").build();

Currency currencyInstance = Currency.getInstance(enUSLocale);

System.out.println(
    "Symbol for US Dollar, en-US locale: " +
    currencyInstance.getSymbol(enUSLocale));

请到通过此链接了解更多详情。



Answer 3:

好像你正在做一些货币计算,因此请务必使用的BigDecimal

BigDecimal balStr = new BigDecimal(String.replaceAll(" ",".");


Answer 4:

String s="891692 06";
Double.parseDouble(s.replace(" ", ".")); would do the trick

您可以使用NumberFormatClass从API来获取monetorey信息



文章来源: Parsing string to double - java