从字符串中删除小数

3

我有一个将BigDecimal转换为带有货币符号的字符串的函数。当我使用它时,数字(例如34)会变成带有许多小数位的数字(例如34.000000)。

我应该怎么做才能解决这个问题并只显示34?

这是我的函数:

    row.put("Money", GcomNullPointerValidator.isNullField(formatUtils.formatCurrency(MoneyDto.getAmount().stripTrailingZeros())));

不知道这些函数的作用,很难帮助你。 - Cheruvian
3个回答

1
您可以使用以下方法:
String number = "150.000";
number.replaceAll("\\.\\d+$", "");

或者你可以使用这个:

number.split(Pattern.quote("."))[0];

太棒了,谢谢。这个代码可以将数字按照小数点分割并取出整数部分:number.split(Pattern.quote("."))[0]; - roy

1

这是什么语言?Java吗? 如果你只想保留小数点前面的数字,可以使用String的split()函数:

String mystring = "34.000000";
String correctstring[] = mystring.split(".");
System.out.println(correctstring[0]);
// display : 34

它将删除小数点后面的所有数字!

4
错误。您应该转义正则表达式。String correctstring[] = mystring.split("\\."); - reinardhz

1

在将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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接