[JAVA] float,double大数据不要科学计数方法显示
2016-12-29 16:31
441 查看
前言:理论
科学计数法:如2E8, 2乘以10的8次方。浮点数(float,double)整数部分达到8位及以上,会以科学计数法显示。
整数(int,long)不会显示成科学计数法。
实践
例子long l1 = 1234567l; long l2 = 12345678l; long l3 = 123456789l; double f1 = 1234567f; double f2 = 12345678f; double f3 = 123456789f; double d1 = 1234567.123d; double d2 = 12345678.123d; double d3 = 123456789.123d; System.out.println("******* long *******"); System.out.println(l1); System.out.println(l2); System.out.println(l3); System.out.println("******* float *******"); System.out.println(f1); System.out.println(f2); System.out.println(f3); System.out.println("******* double *******"); System.out.println(d1); System.out.println(d2); System.out.println(d3);
运行结果
******* long ******* 1234567 12345678 123456789 ******* float ******* 1234567.0 1.2345678E7 1.23456792E8 ******* double ******* 1234567.123 1.2345678123E7 1.23456789123E8
怎么让float,double大数据在前端不以科学计数方法显示?
public static void main(String[] args) { double d = 123456789.128d; String s1 = big(d); String s2 = big2(d); System.out.println(d); System.out.println(s1); System.out.println(s2); } // 方法一:NumberFormat private static String big(double d) { NumberFormat nf = NumberFormat.getInstance(); // 是否以逗号隔开, 默认true以逗号隔开,如[123,456,789.128] nf.setGroupingUsed(false); // 结果未做任何处理 return nf.format(d); } //方法二: BigDecimal private static String big2(double d) { BigDecimal d1 = new BigDecimal(Double.toString(d)); BigDecimal d2 = new BigDecimal(Integer.toString(1)); // 四舍五入,保留2位小数 return d1.divide(d2,2,BigDecimal.ROUND_HALF_UP).toString(); }
运行效果:
1.23456789128E8 123,456,789.128 123456789.13
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Debian 7.x 安装Oracle JAVA
- springmvc实现url路由功能
- spring boot 配置 druid/** * 配置druid * Created by adam on 4/11/16. */ @Configuration public class D
- api接口rsa加密