【发布时间】:2014-08-28 12:17:29
【问题描述】:
我的代码来更新我的 Textviews。我想更新我的 textview 字符串之一以正确显示百分比。现在totalDouble 返回正确的值,但我不能乘或除该值。任何帮助表示赞赏。
private static Integer intNumberOfMaxGBsAccepted;
protected void updateTheDailyandTotalUsageInformation(String string) {
int daySelected = Integer.parseInt(string); //getting the day as a string
//converting the series array to type Number
Number dailyNumber = series2Numbers[daySelected-1];
Number totalNumber = series1Numbers[daySelected-1];
//converting the type Number to type Double
Double dailyDouble = (Double) dailyNumber;
Double totalDouble = (Double) totalNumber;
String dailyString = String.format("%.2f", dailyDouble);
String totalString = String.format("%.2f", totalDouble);
if(intNumberOfMaxGBsAccepted >=1) {
System.out.println(totalDouble);
// **Inside this if statement I want to do
// (totalDouble/intNumberOfMaxGBsAccepted) * 100
// to create a percentage**
// **I want to create something like this**
// Double doublePercent = (totalDouble/(double)intNumberOfMaxGBsAccepted) *100;
// String percent = doublePercent+"%";
//usagePlanPercentTextView.setText(percent);
}
dailyUsageTextView.setText(dailyString);
totalUsageTextView.setText(totalString);
}
谁能帮帮我?我是不是把我的数据类型转换错了?
【问题讨论】:
-
series1Numbers和series2Numbers是如何定义的?它们是什么类型的?为什么您使用Integer、Number和Double而不仅仅是int和double?您说您不能乘以或除以该值。当你尝试时会发生什么?你得到一个编译错误?运行时错误?如果是这样,你会得到什么错误? -
我想在这里回答 David 的问题——除了泛型之外,几乎没有理由使用 Integer 和 Double。而且我认为我以前从未见过 Number 使用过。
-
嗨大卫,我更新了我的代码,当我尝试将“totalDouble”乘以任何值时,我得到了 NullPointerException 值。
-
您的 System.out 打印的是什么?
-
所以我的猜测是您的 intNumberOfMaxGBsAccepted 或 totalDouble 为空。然后,当您在某些计算中使用它时,自动装箱会创建一个空指针异常。更多理由使用 int 和 double 而不是 Integer 和 Double。
标签: java android double number-formatting