问题描述
例如一个Stringstr="12.3";要转换一个Double类型的即str转换为double类型并且要保留两位小数形如doubledou=12.30;怎么转啊?这只是一个特例还要考虑到普遍情况?就要要保证str转为一个double型的小数点后要两位数?在此感谢了啊?
解决方案
解决方案二:
Doubled=newDouble("12.3").doubleValue();java.text.DecimalFormatdf=newjava.text.DecimalFormat();df.setMaximumFractionDigits(2);df.setMinimumFractionDigits(2);Stringdd=df.format(d);System.out.println(dd);
解决方案三:
java.text.DecimalFormatdf=newjava.text.DecimalFormat("##.00");System.out.println(df.format(3.2));
解决方案四:
//这个方法用来将double格式化publicdoubleroundDouble(doubleval,intprecision){Doubleret=null;try{doublefactor=Math.pow(10,precision);ret=Math.floor(val*factor+0.5)/factor;}catch(Exceptione){e.printStackTrace();}returnret;}
调用这个方法时第一个参数传入一个double类型的参数Double.parseDouble(String)第二个参数是你要保留的小数点位数:2
解决方案五:
Stringstr="123.20";doubled=Double.parseDouble(str);
解决方案六:
学习了
解决方案七:
引用2楼amdgaming的回复:
Javacodejava.text.DecimalFormatdf=newjava.text.DecimalFormat("##.00");System.out.println(df.format(3.2));
这样就可以了呵呵
解决方案八:
上面方法丰富,但满足楼主要求的好像没有啊!如果不要求将String转化成double,1楼的方法倒真不错!UP!
解决方案九:
这样就可以了importjava.text.DecimalFormat;publicclassKUU{publicstaticvoidmain(String[]args){Stringstr="12.3";doublesum=Double.valueOf(str);DecimalFormatdf=newDecimalFormat();df.setMaximumFractionDigits(2);df.setMinimumFractionDigits(2);System.out.println(df.format(sum));}}
解决方案十:
回一下8楼mmDecimalFormatdf=newDecimalFormat();这个对象操作出来的数据还是String类型的哦!
解决方案十一:
7楼的也说的对啊我看后好像算出来的还是String我想算出来后是double型的
解决方案十二:
不过还是挺感谢大家的有没有哪位知道的啊我明天就要了今晚就要解决这个问题了
解决方案十三:
学习
解决方案十四:
首先,说个问题System.out.println(3.20);输出的结果是3.2!其次,想问个问题!这个double要用在什么地方!是不是要在不同语言之间传输!如果是,2楼的就可以!如果不是,可以说明下么!大家也许会找到曲线救国的方法!
解决方案十五:
引用2楼amdgaming的回复:
java.text.DecimalFormatdf=newjava.text.DecimalFormat("##.00");System.out.println(df.format(3.2));
这个返回的是String类型的·
解决方案:
首先我要告诉各位楼上的兄弟们包括LZ,学习基础很重要!如果是double型12.3和12.30完全是相等的?如果你要格式化成两位小数,那其实就是只有打印出来的时候才有必要,其实这已经就是字符串。这段代码是从上面拷下来的,本人也比较喜欢用这个java.text.DecimalFormatdf=newjava.text.DecimalFormat("##.00");//格式数字的工具类。System.out.println(df.format(12.3));
解决方案:
一个强制类型转换+一个设置格式就中啦
解决方案:
返回一个double类型的并且是小数点后保留两位,xxx.x0的情况做不到。
解决方案:
不用double用float足够容纳两个小数java.text.DecimalFormatdf=newjava.text.DecimalFormat("##.00");//格式数字的工具类。System.out.println(df.format(12.3));
解决方案:
就是导出Excel因为有的只有一位有的有两位有的没有小数导出来就是这样的:123.45120100.199.8这虽然是按降序排的但客户感觉不好最好是能123.45120.00100.1099.80要是double类型是因为到excel中是Number类型的
解决方案:
DecimalFormatdf=newDecimalFormat("0.0");Stringinputstr=JOptionPane.showInputDialog("请输入:");doublea=Double.parseDouble(inputstr);System.out.println("转换的结果是:"+df.format(a));
解决方案:
up20#学习
解决方案:
学习
解决方案:
学习
解决方案:
1楼的不错
解决方案:
学习一下
解决方案:
学习
解决方案:
用小数点"."做分隔小数点后面的街区两位,不够的补0,然后再将小数点前后合起来
解决方案:
符号位置本地化?含义0数字是阿拉伯数字#数字字是阿拉伯数字,如果不存在则显示为0.数字是小数分隔符或货币小数分隔符-数字是减号,数字是分组分隔符E数字是分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。;子模式边界是分隔正数和负数子模式%前缀或后缀是乘以100并显示为百分数u2030前缀或后缀是乘以1000并显示为千分数¤(u00A4)前缀或后缀否货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。'前缀或后缀否用于在前缀或或后缀中为特殊字符加引号,例如"'#'#"将123格式化为"#123"。要创建单引号本身,请连续使用两个单引号:"#o''clock"。问题分析:导出Excel因为有的只有一位有的有两位有的没有小数导出来就是这样的:123.45120100.199.8这虽然是按降序排的但客户感觉不好最好是能123.45120.00100.1099.80要是double类型是因为到excel中是Number类型的方法:packagetest;importjava.text.DecimalFormat;importjava.util.Scanner;publicclassapi{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);doublen=sc.nextDouble();DecimalFormatdf=newDecimalFormat("-##.00");System.out.println(df.format(n));}}注:(DecimalFormatf).format(a)格式化一个double值,以生成一个字符串。