double 类型转化为Integer类型 ---DecimalFormat

假设x是你要转换的double类型变量:

不进行四舍五入操作: (int)x

进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat("0").format(x));

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。

DecimalFormat 包含一个模式 和一组符号

符号含义:

符号     位置     本地化?     含义
0     数字     是     阿拉伯数字
#     数字字     是     阿拉伯数字,如果不存在则显示为空
.     数字     是     小数分隔符或货币小数分隔符
-     数字     是     减号
,     数字     是     分组分隔符
E     数字     是     分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
;     子模式边界     是     分隔正数和负数子模式
%     前缀或后缀     是     乘以 100 并显示为百分数
/u2030     前缀或后缀     是     乘以 1000 并显示为千分数
¤(/u00A4)     前缀或后缀     否     货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
‘     前缀或后缀     否     用于在前缀或或后缀中为特殊字符加引号,例如 "‘#‘#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o‘‘clock"。

例子:

[java] view plain copy

DecimalFormat df1 = new DecimalFormat("0.0");   
    DecimalFormat df2 = new DecimalFormat("#.#");   
    DecimalFormat df3 = new DecimalFormat("000.000");   
    DecimalFormat df4 = new DecimalFormat("###.###");   
    System.out.println(df1.format(12.34));   
    System.out.println(df2.format(12.34));   
    System.out.println(df3.format(12.34));   
    System.out.println(df4.format(12.34));

运行结果:
12.3
12.3
012.340
12.34

[java] view plain copy

DecimalFormat format = new DecimalFormat("###,####.000");   
    System.out.println(format.format(111111123456.1227222));   
      
    Locale.setDefault(Locale.US);   
    DecimalFormat usFormat = new DecimalFormat("###,###.000");   
    System.out.println(usFormat.format(111111123456.1227222));   
      
    DecimalFormat addPattenFormat = new DecimalFormat();   
    addPattenFormat.applyPattern("##,###.000");   
    System.out.println(addPattenFormat.format(111111123456.1227));   
      
    DecimalFormat zhiFormat = new DecimalFormat();   
    zhiFormat.applyPattern("0.000E0000");   
    System.out.println(zhiFormat.format(10000));   
    System.out.println(zhiFormat.format(12345678.345));   
      
    DecimalFormat percentFormat = new DecimalFormat();   
    percentFormat.applyPattern("#0.000%");   
    System.out.println(percentFormat.format(0.3052222));

运行结果 :
1111,1112,3456.123
111,111,123,456.123
111,111,123,456.123
1.000E0004
1.235E0007
30.522%
如果使用具有多个分组字符的模式,则最后一个分隔符和整数结尾之间的间隔才是使用的分组大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。

时间: 2024-10-09 15:06:42

double 类型转化为Integer类型 ---DecimalFormat的相关文章

Convert integer to string(int类型转化为string类型)

译: 这是一个常见的问题,但是对于这个问题我没有找到一个很好的方法:如何将整数类型转化为字符串类型?我遇到过几种解决方案.我不会使用stringstream.sprintf()函数也遇到了问题,并且它是C语言的风格.函数itoa()以前工作地很好,但参考文档说: 这个函数在ANSI-C中没有被定义,并且它不是C++的一部分,但有些编译器支持 并且这个函数也是C语言风格. 我自己写了一个C++风格的函数,并且它工作起来没有错误(译者注:我不这么认为,详见后文). string convertInt

将字符串类型转化为date类型

直接上代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class FormatDate { //写一个方法将字符串转化为date类型 public static Date formatDate(String str){ //使用SimpleDateFormat类里的构造方法, //并定义好Date类格式 (年-月-日 时-分-秒 )yyyy-M

C++中将string类型转化为int类型

写程序需要将string转化为int,所以就探索了一下. 方法一:atoi函数 atoi函数将字符串转化为整数,注意需要stdlib库.所以就尝试了一下: 1 #include <iostream> 2 #include <string.h> 3 #include <stdlib.h> 4 using namespace std; 5 int main() 6 { 7 string a="11",b="22"; 8 cout<

Java中Object转化为int类型

转自:http://blog.sina.com.cn/s/blog_5f8421fb010162kb.html Java中由Object类型转化为int类型时,不能直接转化,先是将Object类型转化成String类型,然后将String类型转化为int类型! Object value=null; Integer.parseInt(String.valueOf(value)); 这就是将Object类型转化为int类型,而String.valueOf(value)是将value转化为String

把int 类型转化为varchar并且去掉小数点同时以千分号‘,’分割

把int 类型转化为money 类型,再转化为varchar,去掉小数点同时以千分号','分割. select '$' + left(Convert(VARCHAR, cast(10000 as money), 1),  LEN(Convert(VARCHAR, cast(10000 as money), 1))-3)

JS其他类型值转化为Boolean类型规则

由于最近在笔试的时候,发现好多关于其他类型转化为Boolean类型的题目,因此总结一下! 一.String类型转化为Boolean 1.转化j结果为true的情况 ①任何非空字符串 PS:空白字符串也是返回true 2.转化结果为false的情况 ①空字符串 二.Number类型转化为Boolean 1.转化结果为true的情况 ①任何非0数字值(包括无穷大) 2.转化结果为false的情况 ①0 ②NaN 三.Object类型转化为Boolean 1.转化结果为true的情况 ①任何对象(包括

记一次踩坑 Gson转换map对象时 Integer类型自动转换成Double类型

之前一直使用json转换map对象,因为公司统一使用gson,我按照网上转换map对象的方式转换: Map<String, Object> params = gson.fromJson(gson.toJson(payMentResultDto), Map.class); 结果对象里Integer类型自动变成double类型... 解决办法: 网上大致有俩种,1.修改源码(能力达不到)2.增加适配器 我找了一下,解决办法有俩种(比较实用) 1.网上看到的(自定义类型适配器),亲测可用 //这俩段

Money类型转化为String去除小数点后0解决方法

Money类型转化为String去除小数点后0从数据库提取Money类型后,字符串如:1212.0000 如何使其成为1212             注:去掉了小数点 如果是:1212.0100 使其成为   1212.01 难道要循环截取   有没有简单的方法 我要在Gridview中用到------解决方案--------------------double i = 1.1111; string s = i.ToString( "0.00 "); ------解决方案------

Java基础知识强化68:基本类型包装类之Integer直接赋值的面试题

1. 面试题: Integer  i = 1: i += 1: 做了哪些事情? (1)其中Integer i =1:做了自动装箱( 使用valueOf()方法,int ---> Integer ) (2)其中i +=1:先将Integer类型的 i 自动拆箱成 int(使用intValue()方法,Integer--->int ),完成加法运行之后的 i 再装箱成Integer类型. 2. 面试题: 观察下面程序,判断输出写出结果: 1 package cn.itcast_06; 2 3 /*