如何将 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.parseIntString 转换为 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 公斤 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在R中将数字1000格式化为1k,将1000000格式化为1m等[重复]

SQL Server:使用case插入两个表

python3:我如何将2格式化为02 [重复]

将 SQL 日期格式化为英国格式 [重复]

在 C# 中将 Excel 列(或单元格)格式化为文本?

如何通过添加零将文本数据格式化为 6 个字符?