簡體   English   中英

帶有貨幣符號的字符串在Java中浮動

[英]String with currency sign to float in Java

我想將字符串(例如$ 2,480.00,$ 1.22)轉換為浮點值(預期結果:2480.00、1.22)。 哪種方法最好? 按循環,保留字符串數字和“。” 也許正則表達式?

您可以分割字符串,然后根據需要使用數字:

        String str = "$2,480.00";
        str = str.replaceAll("[^-?0-9]+", " ");
        System.out.println(Arrays.asList(str.trim().split(" ")));

輸出:

[2, 480, 00]

使用NumberFormat

String s = "$2,480.00";
float num = NumberFormat.getInstance()
        .parse(s.substring(1))
        .floatValue();
System.out.println(num);

假設條件

我假設數字總是以貨幣符號開頭

為什么不刪除,. s

如果這樣做,您可能會遇到國際數字格式的問題,其中一些會更改點和逗號的含義。

在加拿大英語中,句點用作小數點,逗號(或空格)用於分隔三個數字。 例如,26,000讀取為26,000。

在法語以及許多其他語言中,逗號表示小數,因此26,000讀為26。 這與盎格魯人對此的解釋有很大的不同! 寫在法國的26000正確的方法是26 000或26000

刪除非數字和非點字符后,只需將字符串解析為float即可:

float money = Float.parseFloat("$2,480.00".replaceAll("[^\\d.]", ""));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM