2

プロジェクトでは、銀行のようなプログラムがあります。「銀行」は、次のような口座を含むファイルを読み込みます:
Miller
William
00001
891692 06 <----string that need to be convert to 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;
      }
}

前もって感謝します!

4

4 に答える 4

14

文字列が小数点の代わりにdoubleスペースを使用している場合は、次のようにスペースをドットに置き換えることで修正できます。' '

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

イデオンへのリンク。

于 2012-10-31T19:52:04.153 に答える
4

Using Double for balance calculation is not a good idea, it makes more sense to use the BigDecimal because it is more precise.

You can also add the currency using the class bellow:

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));

please go through this link for more details.

于 2012-10-31T20:09:42.783 に答える
3

通貨の計算をしているように見えるので、常に BigDecimal を使用してください

BigDecimal balStr = new BigDecimal(String.replaceAll(" ",".");
于 2014-01-24T10:51:12.833 に答える
0
String s="891692 06";
Double.parseDouble(s.replace(" ", ".")); would do the trick

API からNumberFormatClassを使用して、通貨情報を取得できます。

于 2012-10-31T19:49:40.563 に答える