Tar*_*ros 2 java double number-formatting french
我尝试获取以法国风格格式化的数字的双值。\n因此文本 1 003,25 应存储为值 (1003.25)。
\n\npublic class NumberFormatTest { \n public static void main(String[] args) throws ParseException {\n String db = "1003.25";\n String manualFRA = "1 003,25";\n double numberDB = Double.parseDouble(db);\n String ger = NumberFormat.getInstance(Locale.GERMAN).format(numberDB);\n String fra = NumberFormat.getInstance(Locale.FRENCH).format(numberDB);\n String eng = NumberFormat.getInstance(Locale.ENGLISH).format(numberDB);\n\n double gerD = NumberFormat.getNumberInstance(Locale.GERMAN).parse(ger).doubleValue();\n double fraD = NumberFormat.getNumberInstance(Locale.FRENCH).parse(fra).doubleValue();\n double mfraD = NumberFormat.getNumberInstance(Locale.FRENCH).parse(manualFRA).doubleValue();\n double engD = NumberFormat.getNumberInstance(Locale.ENGLISH).parse(eng).doubleValue();\n\n System.out.println("From database: " + db);\n\n System.out.println("\\tGerman: " + ger);\n System.out.println("\\tFrench: " + fra);\n System.out.println("\\tEnglish: " + eng);\n\n System.out.println("\\nTo Database: "); \n System.out.println("\\tfrom German: "+ gerD);\n System.out.println("\\tfrom French: "+ fraD);\n System.out.println("\\tfrom manual French: "+ mfraD);\n System.out.println("\\tfrom Englisch: "+ engD);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\npublic class NumberFormatTest { \n public static void main(String[] args) throws ParseException {\n String db = "1003.25";\n String manualFRA = "1 003,25";\n double numberDB = Double.parseDouble(db);\n String ger = NumberFormat.getInstance(Locale.GERMAN).format(numberDB);\n String fra = NumberFormat.getInstance(Locale.FRENCH).format(numberDB);\n String eng = NumberFormat.getInstance(Locale.ENGLISH).format(numberDB);\n\n double gerD = NumberFormat.getNumberInstance(Locale.GERMAN).parse(ger).doubleValue();\n double fraD = NumberFormat.getNumberInstance(Locale.FRENCH).parse(fra).doubleValue();\n double mfraD = NumberFormat.getNumberInstance(Locale.FRENCH).parse(manualFRA).doubleValue();\n double engD = NumberFormat.getNumberInstance(Locale.ENGLISH).parse(eng).doubleValue();\n\n System.out.println("From database: " + db);\n\n System.out.println("\\tGerman: " + ger);\n System.out.println("\\tFrench: " + fra);\n System.out.println("\\tEnglish: " + eng);\n\n System.out.println("\\nTo Database: "); \n System.out.println("\\tfrom German: "+ gerD);\n System.out.println("\\tfrom French: "+ fraD);\n System.out.println("\\tfrom manual French: "+ mfraD);\n System.out.println("\\tfrom Englisch: "+ engD);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\r\n有谁知道为什么手动法语值是 1.0 而不是 1003.25?\n我该如何解决它?在实际程序中,该值来自文本字段的字符串。
\n\n在此先感谢您的帮助!
\n法语格式文本中的空格是NO-BREAK SPACE,而不是常规空格。
如果将字符串文字更改为"1\u00a0003,25",它将起作用。
如果该文本来自外部源(例如用户),那么您可以将空格替换为不间断空格,例如
parse(manualFRA.replace(' ', '\u00a0'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |