我想将以下数字格式化为Android旁边的数字:
我已经尝试过,方法是将代码从“如何在Android Studio中将1200格式化为1.2k”
当值是零的倍数时可以使用,但是如果存在一个非零的数字,则有些不适合
String numberString = "";
if (Math.abs(Integer.parseInt(weight_total) / 1000) > 1) {
numberString = (Integer.parseInt(weight_total) / 1000) + " kg";
}
else {
numberString = weight_total + " gram";
}
tvWeight.setText(": " + numberString);
我要1000克> 1公斤,1800克> 1.8公斤等
正确和错误的体重截图https://i.stack.imgur.com/mqA0x.jpg
现在我正在使用此代码,因此对于我的应用程序,它可以正常工作
// Input data
int weightInput = Integer.parseInt(item.getWeight());
String weightOutput;
if (weightInput < 1000) {
weightOutput = weightInput + " gram";
} else {
double result = weightInput / 1000.0;
weightOutput = String.valueOf(result);
weightOutput = (weightOutput.contains(".0") ? weightOutput.substring(0, weightOutput.length() - 2) : weightOutput) + " kg";
}
System.out.println(weightOutput);
Integer.parseInt
转换String
成int
。
如果将其int
除以int
结果也将int
如此。
改用Float.parseFloat()
或除以1000.0
(将1000设为非整数值,结果也将为非整数。)
如果您希望它更精确并计数毫克(甚至更小的单位),则必须使用,Float.parseFloat()
因为该值点后将使用丢弃Integer.parseInt()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句