Java 如何在12位字符串中最多显示2位小数
我有一个12位的字符串来n字符串格式00000000 3625我想让它36.25我会怎么做请帮助我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
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);