首页 > 编程知识 正文

bigdecimal取整,bigdecimal转int

时间:2023-05-06 03:59:05 阅读:111327 作者:3136

参考链接:

数字格式

使用默认格式

默认格式

解决decimal format 0.00

import java.math.RoundingMode; 输入Java.text.*; public class demo { publicstaticvoidmain (string [ ] args ) { Demo demo=new Demo; demo.testGetInstance (; //demo.testSetDigits (; //demo.testRoundingMode (; //demo.testParse (; demo.decimalFormatTest (; } public void testGetInstance () doubled=23323.332323232323; //当前默认区域设置的【默认值】格式system.out.println (number format.getinstance (.format ) d ) ); //23,323.332//当前缺省语言环境的【货币】格式system.out.println (number format.getcurrencyinstance (.format ) d ) //23,323.33//返回当前默认区域设置的【常规数字】格式system.out.println (number format.getnumber instance (.format ) ) d //23,323.332//返回当前默认区域设置的【整数】格式system.out.println (number format.getintegerinstance (.format ) ) d ) //23,323//当前缺省语言环境的【百分比】格式system.out.println (number format.getpercentinstance (.format ) d ) ) //2,332,333 %//逗号分隔的numberformatnumberformat=number format.getinstance (; number format.setgroupingused (false; //是否用逗号分隔,默认true用逗号分隔,并返回system.out.println (number format.format ) d ); //23323.332 } publicvoiddecimalformattest ()/0意味着如果位数不足,则用0填充,#意味着如果可能,将数字提升到该位置。 //圆周率//整数system.out.println (new decimal format ('0).format ) (pi ) ); //3 //整数1位和小数2位的system.out.println (new decimal format (' 0.00 '.format ) pi ) ); //3.14 //取整数2位和小数3位,整数不足的部分用0填补。 system.out.println (new decimal format (' 00.000 ' ).format ) ) pi ); //03.142 //所有整数部分的system.out.println (new decimal format (' # '.format ) pi ) ); //3 //按百分比计数,小数system.out.println (new decimal format ) ' #.##% ' ).format ) ); //314.16% long c=299792458; ///光速//显示为科学计数法,小数点后5位的system.out.println (new decimal format (c (' #.# # E0 '.format ) ); //2.99792E8 //是显示两位整数的科学计数法,是四位小数system.out.println (new decimal format (c (' 00.# # E0 '.format ) (c ) ) ); //29.9792E7 //用逗号分隔每一位。 system.out.println (new decimal format (,### ' ).format (c ) ); //299,792,458//文本system.out.println中嵌入格式(newdecimalformat ) )光速大小为每秒###米。 '.format(c ); //光速的大小为每秒299,792,458米。//每3位用逗号隔开,保留2位小数点

double d1 = 1234567111.89; System.out.println(d1); //1.23456711189E9 System.out.println(new DecimalFormat(",##0.00").format(d1)); //1,234,567,111.89 //每三位以逗号进行分隔,保留两位小数点 double d2 = 1234567111.80; System.out.println(new DecimalFormat(",##0.00").format(d2));//1,234,567,111.80 //每三位以逗号进行分隔,保留两位小数点 double d3 = 1234567111.00; System.out.println(new DecimalFormat(",##0.00").format(d3));//1,234,567,111.00 double d5 = 0.00; // -0.00查看效果 -> -0.00 //每三位以逗号进行分隔,保留两位小数点 System.out.println(new DecimalFormat(",##0.00").format(d5));//0.00 double d6 = 0; // -0查看效果->0.00 //每三位以逗号进行分隔,保留两位小数点 System.out.println(new DecimalFormat(",##0.00").format(d6));//0.00 } public void testSetDigits() { NumberFormat format = NumberFormat.getInstance(); format.setParseIntegerOnly(true);//设置数是否应该仅作为整数进行解析。此方法只影响解析,与格式化无关 format.setMinimumFractionDigits(2);//设置数值的【小数部分】允许的最小位数。这几个方法只影响格式化,与解析无关 format.setMaximumFractionDigits(3);//设置数值的【小数部分】允许的最大位数 format.setMinimumIntegerDigits(1);//设置数值的【整数部分】允许的最小位数 format.setMaximumIntegerDigits(5);//设置数值的【整数部分】允许的最大位数 System.out.println(format.format(123.1234));//123.123 System.out.println(format.format(123.1000));//123.10 System.out.println(format.format(123456789.12345));//56,789.123 } public void testRoundingMode() { NumberFormat format = NumberFormat.getInstance(); format.setMaximumFractionDigits(0);//设置数值的【小数部分】允许的最大位数 System.out.println("默认模式为:" + format.getRoundingMode().name());//HALF_EVEN System.out.println(format.format(5.6));//6。5以上不管是奇数还是偶数,5都舍入 System.out.println(format.format(5.4));//5。5以下不管是奇数还是偶数,5都舍去 System.out.println(format.format(1.5));//2。当是5时,若前一位是奇数,5就舍入 System.out.println(format.format(2.5));//2。当是5时,若前一位是偶数,5就舍去 format.setRoundingMode(RoundingMode.HALF_UP);//四舍五入。此方法只影响格式化,与解析无关 System.out.println("当前模式为:" + format.getRoundingMode().name());//HALF_UP System.out.println(format.format(5.6));//6 System.out.println(format.format(5.4));//5 System.out.println(format.format(1.5));//2 System.out.println(format.format(2.5));//3 } public void testParse() { NumberFormat format = NumberFormat.getInstance(); format.setParseIntegerOnly(false);//设置数是否应该仅作为整数进行解析。此方法只影响解析,与格式化无关 format.setMinimumFractionDigits(2);//这几个方法只影响格式化,与解析无关 ParsePosition position = new ParsePosition(2); try { Number number = format.parse("00123.10050100结尾处不受影响");//如果无法解析字符串的【开头】则抛出ParseException Number number2 = format.parse("开头00123.10050100结尾处不受影响", position);//解析字符串时,从position.getIndex()处开始解析 System.out.println(number.floatValue());//123.1005 System.out.println(number.intValue());//123 System.out.println(number2.doubleValue());//123.100501 System.out.println(position.getIndex());//16。解析前,代表解析开始处字符的索引;解析后,代表被解析的最后一个字符后的字符的索引 System.out.println(position.getErrorIndex());//-1。获取出错时的索引,如果没有设置错误索引,则为 -1 position.setIndex(1);//如果重用ParsePosition,须重新设置一下Index才可以 System.out.println(format.parse("12.345678只解析", position).floatValue());//2.345678 } catch (ParseException e) { e.printStackTrace(); } }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。