解析 2.000,00 到 2000 和 2.000,15 到 2000.15
Parse 2.000,00 to 2000 and 2.000,15 to 2000.15
我正在努力格式化 java 中的数字。
我的输入格式如下(我无法更改):2.000,15
输出应如下所示:2000.15
如果逗号后只有 0,则输出应如下所示:2000
输入以字符串形式给出。
我已经尝试使用 DecimalFormat
但这只会导致 IllegalArgumentException
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getInstance(Locale.ENGLISH);
decimalFormat.setMinimumFractionDigits(0);
decimalFormat.setMaximumFractionDigits(2);
decimalFormat.setGroupingUsed(false);
return decimalFormat.format(Double.parseDouble(characteristicValue));
您拥有合适的工具,但您不需要获取 DecimalFormat
的实例,您可以创建自己的实例。
import java.text.DecimalFormat;
class Playground {
public static void main(String[ ] args) {
String pattern = "###,###.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
String format = decimalFormat.format(2000.15);
System.out.println(format);
}
}
试一试:
NumberFormat fmt = NumberFormat.getInstance(Locale.GERMAN);
try {
BigDecimal bd = new BigDecimal(fmt.parse("2.000,15").toString());
System.out.println(bd.toString()); // output: 2000.15
} catch (ParseException e) {
//ex handling
}
您可以尝试以下方法:
- 选择一种使用点分隔的千位分隔符的数字格式。
- 设置小数(分数)位的最小有效数字。
无需设置 Java 的 SDK 中已存在的格式。
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
public class FormattingNumbers {
static NumberFormat inputFormat = NumberFormat.getNumberInstance(Locale.GERMAN);
static NumberFormat outputFormat = NumberFormat.getNumberInstance(Locale.US);
static {
inputFormat.setMinimumFractionDigits(2);
outputFormat.setMinimumFractionDigits(2);
}
public static void main(String[] args) throws ParseException {
String[] numbers = { "2.000,00", "2.000,15" };
for (String number : numbers) {
System.out.println(outputFormat.format(inputFormat.parse(number)));
}
}
}
输出:
2,000.00
2,000.15
注:这里是countries using decimal comma的列表。
我正在努力格式化 java 中的数字。
我的输入格式如下(我无法更改):2.000,15 输出应如下所示:2000.15
如果逗号后只有 0,则输出应如下所示:2000
输入以字符串形式给出。
我已经尝试使用 DecimalFormat
但这只会导致 IllegalArgumentException
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getInstance(Locale.ENGLISH);
decimalFormat.setMinimumFractionDigits(0);
decimalFormat.setMaximumFractionDigits(2);
decimalFormat.setGroupingUsed(false);
return decimalFormat.format(Double.parseDouble(characteristicValue));
您拥有合适的工具,但您不需要获取 DecimalFormat
的实例,您可以创建自己的实例。
import java.text.DecimalFormat;
class Playground {
public static void main(String[ ] args) {
String pattern = "###,###.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
String format = decimalFormat.format(2000.15);
System.out.println(format);
}
}
试一试:
NumberFormat fmt = NumberFormat.getInstance(Locale.GERMAN);
try {
BigDecimal bd = new BigDecimal(fmt.parse("2.000,15").toString());
System.out.println(bd.toString()); // output: 2000.15
} catch (ParseException e) {
//ex handling
}
您可以尝试以下方法:
- 选择一种使用点分隔的千位分隔符的数字格式。
- 设置小数(分数)位的最小有效数字。
无需设置 Java 的 SDK 中已存在的格式。
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
public class FormattingNumbers {
static NumberFormat inputFormat = NumberFormat.getNumberInstance(Locale.GERMAN);
static NumberFormat outputFormat = NumberFormat.getNumberInstance(Locale.US);
static {
inputFormat.setMinimumFractionDigits(2);
outputFormat.setMinimumFractionDigits(2);
}
public static void main(String[] args) throws ParseException {
String[] numbers = { "2.000,00", "2.000,15" };
for (String number : numbers) {
System.out.println(outputFormat.format(inputFormat.parse(number)));
}
}
}
输出:
2,000.00
2,000.15
注:这里是countries using decimal comma的列表。