[英]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]
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.