我在 Double
中从服务器获取“价格”值,我需要将其放入应用程序的 TextView 中。问题是:当 price = 500 时,我得到 500.0,因为它是 Double
。我希望它看起来像 500.55 或 500.50 或只是 500 - 如何以正确的方式格式化这些数字?
最佳答案
您可以使用rexgex
进行格式化
1.) 创建一个函数来识别以下条件
如果精度值只包含零则截断它们
如果小数点后有非零值则返回原值
public String formatValue(double d){ String dStr = String.valueOf(d); String value = dStr.matches("\\d+\\.\\d*[1-9]\\d*") ? dStr : dStr.substring(0,dStr.indexOf(".")); return value; }
\\d+\\.\\d*[1-9]\\d*
:匹配一个或多个数字然后是 。
\\d*[1-9]\\d*
: 匹配一个非零值
测试用例
yourTextView.setText(formatValue(500.00000000)); // 500
yourTextView.setText(formatValue(500.0001)); // 500.0001
yourTextView.setText(formatValue(500)); // 500
yourTextView.setText(formatValue(500.1111)); // 500.1111
关于java - android - 格式化 Double 并将其放在没有逗号的 TextView 中(如果需要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949000/