java - android - 格式化 Double 并将其放在没有逗号的 TextView 中(如果需要)

标签 java android format double

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

Learn more about regular expressions

关于java - android - 格式化 Double 并将其放在没有逗号的 TextView 中(如果需要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949000/

相关文章:

java - 如何在两个不同点之间绘制移动动画线

java - 安卓猜数字游戏?如何在用户正确时更改随机数?

java - Java 中的 DecimalFormat 与 #####0.00 模式的奇怪行为

android - 在应用程序类中保存静态上下文变量

android - CC41-A 拒绝配对

c# - 将时间值的字符串表示形式解析为 TimeSpan

android - 更改 ACTION_VIDEO_CAPTURE 的格式

java - Google App Engine - 找不到我的日志消息

java - 比 Base64 更短的编码

java - 为什么 System.getProperty ("java.io.tmpdir") 在 Mac OS X Catalina 10.15 上返回只读目录