回答
如果其他的答案还不够明确
String text = "00003600";
BigDecimal value = new BigDecimal(text).scaleByPowerOfTen(-2);
System.out.println(value);
打印
36.00
OR
String text = "00003600";
double value = Double.parseDouble(text)/100;
System.out.printf("%.2f%n", value);
打印
36.00
*正确的方法*是调用'scaleByPowerOfTen(-2)' - 替换'setScale(2)'和'divide' - 并且琐碎的复杂性。这正是我在我的评论中实际想到的。它只是修改'scale'属性,根本不需要重新计算。 – 2012-07-10 12:46:15
@MarkoTopolnik谢谢你的建议。 – 2012-07-10 13:28:10
只是解析字符串,然后除以100.或使用BigDecimal和缩放。
看起来像@MarkoTapolnik打我到BigDecimal的答案:) – 2012-07-10 12:19:46
最正确的方式(恕我直言):
String input = "00013650";
BigDecimal value = BigDecimal.valueOf(Long.parseLong(input), 2);
String output = value.toPlainString();
System.out.println(output);
输出:
136.5
当BigDecimals被设计为接受字符串输入时,为什么你会通过它? – 2012-07-10 12:38:38
只要这样我就可以通过相同的方法调用:) – 2012-07-10 12:44:03
Id避免这样做,使用'new BigDecimal(input).setScale(2)'会好很多。 – 2012-07-10 12:45:32
- 1. 正则表达式,在字符串中查找表达式。
- 2. 正则表达式在字符串中查找字符串
- 3. 正则表达式查找字符串中的字符串
- 4. C#正则表达式查找字符串的字符串
- 5. 正则表达式查找ASCII字符
- 6. 正则表达式查找字符
- 7. 正则表达式查找字符串后跟字符
- 8. 正则表达式查找字符串中的字符串中的字符串
- 9. 正则表达式在字符串上查找字母数字
- 10. jQuery正则表达式按子串查找字符串
- 11. 查询字符串中查找标签与正则表达式
- 12. AWK正则表达式查找字符串与模式
- 13. 以编程方式查找字符串到正则表达式?
- 14. Javascript正则表达式,查找字符串中的数字
- 15. Java正则表达式在字符串中查找数字
- 16. 正则表达式查找字符串中间的数字
- 17. 正则表达式查找特定字符串后的数字
- 18. 关于查找数字字符串的Java正则表达式
- 19. 正则表达式 - 在字符串中查找大写字
- 20. 查找字符串java正则表达式中的字段
- 21. 正则表达式:查找字符串和数字
- 22. 正则表达式问题 - 查找字符串中的数字
- 23. 正则表达式的正则表达式的Java字符串
- 24. 正则表达式正则表达式匹配字符串
- 25. 正则表达式(正则表达式)的子字符串
- 26. Javascript正则表达式 - 正则表达式拆分字符串
- 27. 在字符串中查找通配符子字符串的正则表达式
- 28. 正则表达式使用正则表达式来找到子字符串
- 29. 如何查找字符串包含正则表达式的特殊字符与正则表达式
- 30. 构建的正则表达式查找字符串
不要使用正则表达式。这对于BigDecimal来说是一个完美的例子。读为int,然后修改'scale'。 – 2012-07-10 12:17:05
请注意,前导零使数字解释为八进制数字。所以'010'实际上是'8'。 – 2012-07-10 12:23:36
'010'被认为是八进制的,只有部分源代码 – 2012-07-10 12:27:46