方式一 double f = ; BigDecimal b = new BigDecimal(f) double f = b setScale( BigDecimal ROUND_HALF_UP) doubleValue() //数字 是保留两位小数BigDecimal ROUND_HALF_UP是上舍入的舍入模式 方式二 java text DecimalFormat df = new java text DecimalFormat( # ) df format(你要格式化的数字) 例 new java text DecimalFormat( # ) format( ) # 表示两位小数# 四位小数 以此类推… 方式三 double d = ; String result = String format( % f ) % f % 表示 小数点前任意位数 表示两位小数 格式后的结果为f 表示浮点型 方式四 NumberFormat ddf =NumberFormat getNumberInstance() void setMaximumFractionDigits(int digits) digits 显示的数字位数为格式化对象设定小数点后的显示的最多位 显示的最后位是舍入的 import java text * ; import java math * ; class TT {public static void main(String args[]) { double x= ; NumberFormat ddf =NumberFormat getNumberInstance() ddf setMaximumFractionDigits( ) String s= ddf format(x) System out print(s) }}
例子 /* * Double java * * By: * 用于输出双精度数值的小数位数 */ package dou; import java util *; import java text *; public class Double{ public static void main(String[] args){ Scanner input=new Scanner(System in) System out print( 请输入一个数值 ) double num=input nextDouble() //输入一个数值 DecimalFormat df=new DecimalFormat( ) //保留一位小数 DecimalFormat dg=new DecimalFormat( ) //保留两位小数 DecimalFormat dh=new DecimalFormat( ) //保留三位小数 String strnum =df format(num) //将num转换为字符串型 String strnum =dg format(num) String strnum =dh format(num) System out println( 一位小数位 +strnum ) //输出一位小数 System out println( 两位小数位 +strnum ) System out println( 三位小数位 +strnum ) }} lishixinzhi/Article/program/Java/hx/201311/26808