我有一些代码可以检查我的号码有多少位小数。
例子:
1,10正确转换:
String.format("%.1f", Double.parseDouble(md.get("amount"))
1,10错误转换:
String.format("%.2f", Double.parseDouble(md.get("amount"))
我不能有尾随0的
1正确转换:
String.format("%.0f", Double.parseDouble(md.get("amount"))
1错误转换:
String.format("%.1f", Double.parseDouble(md.get("amount"))
我不能有尾随0的
对于大于 1 000 000 的数字,Java 将我的数字转换为科学记数法,而我知道将它们转换回来而不丢失小数的唯一方法是使用 String.format。
我的错误代码:
md 是一个映射,键“数量”映射到一个应该是 Double 的字符串
if( Double.parseDouble(md.get("amount")) * 10 % 10 != 0) {
System.out.println("0,1");
md.put("amount", String.format("%.1f", Double.parseDouble(md.get("amount"))));
if( Double.parseDouble(md.get("amount")) * 100 % 10 != 0) {
System.out.println("0,11");
md.put("amount", String.format("%.2f", Double.parseDouble(md.get("amount"))));
}
}
else if(Double.parseDouble(md.get("amount")) * 10 % 10 == 0 && Double.parseDouble(md.get("amount")) * 100 % 10 == 0){
System.out.println("0,0");
md.put("amount", String.format("%.0f", Double.parseDouble(md.get("amount"))));
}