Java 如何在12位字符串中最多显示2位小数

Java 如何在12位字符串中最多显示2位小数,java,Java,我有一个12位的字符串来n字符串格式00000000 3625我想让它36.25我会怎么做请帮助我 while ((line = rd.readLine()) != null) { //Parse our JSON response JSONParser j = new JSONParser(); JSONObject jsonObject = (JSONObject)j.parse(line); String resCode = (Strin

我有一个12位的字符串来n字符串格式00000000 3625我想让它36.25我会怎么做请帮助我

while ((line = rd.readLine()) != null) {
    //Parse our JSON response 
     JSONParser j = new JSONParser();

     JSONObject jsonObject = (JSONObject)j.parse(line); 

     String   resCode  = (String) jsonObject.get("RSP_CODE");

这里我使用字符串格式

您可以将其解析为long,然后将其除以100

为了清楚起见,如果输入字符串为00000000 3625,您希望显示36.25。下面是您可能要使用的代码

String val = "000000003625";
Float i = Float.parseFloat(val);
System.out.println(i / 100);

这可能是您需要的:

BigDecimal bd = new BigDecimal("000000003625").divide(new BigDecimal(100));

将字符串转换为数字并除以100(浮点):

并格式化结果:

DecimalFormat df = new DecimalFormat("0.00");
String result = df.format(d);
或者,如果可能存在浮点不精确的问题,请使用解析和除法,然后格式化生成的
BigDecimal

BigDecimal bd = new BigDecimal("000000003625")
                        .divide(new BigDecimal(100));
DecimalFormat df = new DecimalFormat("0.00");
String result = df.format(bd);

从字符串中创建一个BigDecimal,然后将其除以100。整数的最大值为:2147483647,即10位,而不是12位。非常感谢您,我使用了BigDecimal并得到了响应我不是向下投票人,但可能只是因为它是浮点。当您有一个更精确的版本(double)和一个使用字符串的完全精确的对象(BigDecimal)时,使用float似乎有些奇怪。
BigDecimal bd = new BigDecimal("000000003625")
                        .divide(new BigDecimal(100));
DecimalFormat df = new DecimalFormat("0.00");
String result = df.format(bd);