我有一个将BigDecimal转换为带有货币符号的字符串的函数。当我使用它时,数字(例如34)会变成带有许多小数位的数字(例如34.000000)。
我应该怎么做才能解决这个问题并只显示34?
这是我的函数:
row.put("Money", GcomNullPointerValidator.isNullField(formatUtils.formatCurrency(MoneyDto.getAmount().stripTrailingZeros())));
我有一个将BigDecimal转换为带有货币符号的字符串的函数。当我使用它时,数字(例如34)会变成带有许多小数位的数字(例如34.000000)。
我应该怎么做才能解决这个问题并只显示34?
这是我的函数:
row.put("Money", GcomNullPointerValidator.isNullField(formatUtils.formatCurrency(MoneyDto.getAmount().stripTrailingZeros())));
String number = "150.000";
number.replaceAll("\\.\\d+$", "");
或者你可以使用这个:
number.split(Pattern.quote("."))[0];
这是什么语言?Java吗? 如果你只想保留小数点前面的数字,可以使用String的split()函数:
String mystring = "34.000000";
String correctstring[] = mystring.split(".");
System.out.println(correctstring[0]);
// display : 34
String correctstring[] = mystring.split("\\.");
- reinardhz在将BigDecimal转换为String的方法中,您可以使用BigDecimal.setScale()来设置小数点后的位数。例如:
BigDecimal d = new BigDecimal("34.000000");
BigDecimal d1 = d.setScale(2, BigDecimal.ROUND_HALF_UP); // yields 34.00
BigDecimal d2 = d.setScale(0, BigDecimal.ROUND_HALF_UP); // yields 34