2017-09-07 62 views
0

我的程序崩潰並關閉到一個特定的頁面。 在LogCat中,第19,82行似乎有問題 解決方案是什麼?DecimalFormat和Math.pow

public double format (double value) { 
    if (value != 0){ 
     DecimalFormat df = new DecimalFormat("###.#"); 
     return valueOf(df.format(value)); 
    } else { 
     return -1; 
    } 

} 

public double getBMIKg(double height, double weight) { 
    double meters = height/100; 
    return format(weight/Math.pow(meters,2)); 
} 

error message in logCat

+1

添加堆棧跟蹤 – Zoe

+2

也許'meters'爲0?爲什麼不粘貼錯誤消息,所以我們不猜? :) –

+1

* FYI:*對於表演,我相信'(米*米)'比'Math.pow(米,2)'更快。 – Andreas

回答

1

試試這個:

public double getBMIKg(double height, double weight) { 
    double meters = height/100.0; 
    double res=meters!=0?weight/Math.pow(meters,2):0 
    return format(res); 
} 
+0

沒有更改 Android模擬器的內部工作正常,但實際手機內部不起作用 – reza

+0

在實際的手機返回-1內提供錯誤信息 – bukkojot

+0

;實際上(value!= 0){DecimalFormat df = new DecimalFormat(「###。#」); return valueOf(df.format(value));不起作用 – reza