如何将 1000 克格式化为 1 公斤 [重复]
Posted
技术标签:
【中文标题】如何将 1000 克格式化为 1 公斤 [重复]【英文标题】:How to go about formatting 1000 Gram to 1 Kg [duplicate] 【发布时间】:2021-01-03 15:33:04 【问题描述】:我想用 android 将以下数字格式化为它们旁边的数字:
我试过了,从How to go about formatting 1200 to 1.2k in Android studio获取代码
这在值是零的倍数时有效,但如果有一个不是零的数字,则有些不合适
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);
最终结果https://i.stack.imgur.com/1Nxbs.png
【问题讨论】:
android studio 是一个 IDE,这意味着它只是帮助您编写代码。除非您特别询问 IDE 的功能,否则请不要使用该标签 如果还需要四舍五入,见***.com/questions/153724/… 【参考方案1】:Integer.parseInt
将 String
转换为 int
。
如果您将int
除以int
,结果也将是int
。
请改用Float.parseFloat()
,或将其除以1000.0
(使1000 为非整数值,然后结果也将是非整数。)
如果您希望它更精确并计算毫克(甚至更小的单位),您必须使用Float.parseFloat()
,因为点后的值将使用Integer.parseInt()
丢弃。
【讨论】:
是的,它的工作和帮助,谢谢【参考方案2】:给你,我为此编写了一个 java 代码,我相信它也可以在 android 中工作。
package ***;
import java.util.*;
import java.io.*;
public class parseWeight
public static void main(String[] args) throws IOException
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//Ignore above
//assuming you have int as input
int weightInput = Integer.parseInt(br.readLine());
String outputString = "";
if(weightInput < 1000)
outputString = weightInput + " gram";
else if(weightInput >= 1000)
double temp = weightInput / 1000.0;
//round off upto one decimal places
double rf = Math.round((temp*10.0)/10.0);
outputString = rf + " kg";
tvWeight.setText(": " + outputString);
//Ignore below
System.out.println(outputString);
【讨论】:
使用 double 可以正常工作,感谢伙伴的帮助以上是关于如何将 1000 克格式化为 1 公斤 [重复]的主要内容,如果未能解决你的问题,请参考以下文章