小编kc *_*ili的帖子

NumberFormatException:无效的双精度:“?”

经过简单的除法后,我尝试将结果四舍五入到小数点后两位。一切正常,但在某些设备上,我收到此符号“?” 作为分裂的结果。当我尝试将其四舍五入到小数点后 2 位时,此符号会导致数字格式异常。有人可以向我解释为什么会发生这种情况,以及我如何解决它

我的代码:

    double total = 0;
    double average = 0;
    for (HashMap.Entry<String, Double> entry : ratings.entrySet()) {
        String person = entry.getKey();
        Double rating = entry.getValue();
        total += rating;
    }
    average = total / ratings.size();

    ratingsDisplay.setTitleText(roundTo2Decimals(average) + "");

public double roundTo2Decimals(double val) {
    DecimalFormat df2 = new DecimalFormat("###.##");
    return Double.valueOf(df2.format(val)); <== this is where the crash happens
}
Run Code Online (Sandbox Code Playgroud)

错误日志:

0java.lang.NumberFormatException: Invalid double: "?"
1at java.lang.StringToReal.invalidReal(StringToReal.java:63)
2at java.lang.StringToReal.initialParse(StringToReal.java:164)
3at java.lang.StringToReal.parseDouble(StringToReal.java:282)
4at java.lang.Double.parseDouble(Double.java:301)
5at java.lang.Double.valueOf(Double.java:338)
6at com.ducky.flipplanet.ToonViewer.roundTo2Decimals(ToonViewer.java:2750)
7at com.ducky.flipplanet.ToonViewer.calculateAndShowRatings(ToonViewer.java:2919)
8at …
Run Code Online (Sandbox Code Playgroud)

java double android

1
推荐指数
1
解决办法
663
查看次数

这个循环开始时的分号是什么意思?

当我遇到这个分号时,我正在阅读一个开源代码.我最初认为这是一个错误,但事实并非如此.

在下面的for循环的开放括号之后,分号的功能是什么?

       if (nCount > 0){
            for(; nCount > 0; nCount--){
                if (mBitmaplist[nCount - 1] != null){
                    mBitmaplist[nCount - 1].recycle();
                    mBitmaplist[nCount - 1] = null;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

java android

0
推荐指数
1
解决办法
111
查看次数

标签 统计

android ×2

java ×2

double ×1