采用DecimalFormat格式化数字中的小问题

长的丑怪我了 2018-08-10 04:50:15
import java.text.DecimalFormat;//导入java.text.DecimalFormat

public class DecimalFormatSimpleDemo {//创建类
//使用实例化对象时设置格式化模式
static public void SimgleFormat(String pattern,double value){
//实例化DecimalFormat
DecimalFormat myFormat=new DecimalFormat(pattern);
String output=myFormat.format(value);//将数字进行格式化
System.out.println(value+" "+pattern+" "+output);
}

//使用applyPattern()方法对数字进行格式化
static public void UseApplyPatternMethodFormat(String pattern,double value){
DecimalFormat myFormat=new DecimalFormat();//实例化DecimalFormat对象
myFormat.applyPattern(pattern);//调用applyPattern()方法设置格式化模板
System.out.println(value+" "+pattern+" "+myFormat.format(value));
}

public static void main(String args[]){//主函数
SimgleFormat("###,###.###",123456.789);//调用静态SimgleFormat()方法
SimgleFormat("00000000.### kg",123456.789);//在数字后面加上单位
//安装格式模板格式化数字,不存在的位以0显示
SimgleFormat("000000.000",123.78);
//调用静态UseApplyPatternMethodFormat()方法
UseApplyPatternMethodFormat("#.###%",0.789);
//将小数点后格式化为两位
UseApplyPatternMethodFormat("###.##%",123456.789);
//将数字转化为千分数形式
UseApplyPatternMethodFormat("0.00\u2030",0.789);
}

}

这是写的,但是结果不知道怎么有问题 。我得到的结果中的倒数第二个结果是12345678.9,不应该是123456.79嘛?各位大神帮忙看看。下面附图:
穿不上:直接写结果吧:

123456.789 ###,###.### 123,456.789
123456.789 00000000.### kg 00123456.789 kg
123.78 000000.000 000123.780
0.789 #.###% 78.9%
123456.789 ###.##% 12345678.9%
0.789 0.00‰ 789.00‰
...全文
471 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
verejava 2018-08-10
  • 打赏
  • 举报
回复
Java 常用类库 之 DecimalFormat 小数格式化

http://www.verejava.com/?id=16993070785894
appleyk 2018-08-10
  • 打赏
  • 举报
回复
appleyk 2018-08-10
  • 打赏
  • 举报
回复
123456.789 * 100 = 12345678.9
qq593467574 2018-08-10
  • 打赏
  • 举报
回复
感觉这个结果是对的啊
相当于把123456.789 转化为百分数
长的丑怪我了 2018-08-10
  • 打赏
  • 举报
回复

半天了,还是上不了图

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧