JSP:

Action:添加

//格式化数字显示
public String formatDouble(double s){
DecimalFormat fmt = new DecimalFormat("\u00A4##0.00");
return fmt.format(s);
}

JAVA String.format 方法使用介绍

1.对整数进行格式化:%[index$][标识][最小宽度]转换方式

我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

标识: 

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'+'    结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'  '    正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'0'    结果将用零来填充

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

','    只适用于10进制,每3位数字之间用“,”分隔

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制)

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

转换方式:

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

d-十进制   o-八进制   x或X-十六进制

上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

System.out.println(String.format("%1$,09d", -3123));
        System.out.println(String.format("%1$9d", -31));
        System.out.println(String.format("%1$-9d", -31));
        System.out.println(String.format("%1$(9d", -31));
        System.out.println(String.format("%1$#9x", 5689));
//结果为:
//-0003,123
//      -31
//-31      
//     (31)
//   0x1639

2.对浮点数进行格式化:%[index$][标识][最少宽度][.精度]转换方式

我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

标识: 

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'+'    结果总是包括一个符号

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'  '    正值前加空格,负值前加负号

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'0'    结果将用零来填充

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

','    每3位数字之间用“,”分隔(只适用于fgG的转换)

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

转换方式:

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'e', 'E'  --  结果被格式化为用计算机科学记数法表示的十进制数

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'f'          --  结果被格式化为十进制普通表示方式

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'g', 'G'    --  根据具体情况,自动选择用普通表示方式还是科学计数法方式

java 格式化 字符串函数 java格式化金额字符串_java 格式化 字符串函数

'a', 'A'    --   结果被格式化为带有效位数和指数的十六进制浮点数

3.对字符进行格式化:

对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。

4.对百分比符号进行格式化:

看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:

System.out.println(String.format("%1$d%%", 12));

5.取得平台独立的行分隔符:

System.getProperty("line.separator")可以取得平台独立的行分隔符,但是用在format中间未免显得过于烦琐了。于是format函数自带了一个平台独立的行分隔符那就是String.format("%n")。

6.对日期类型进行格式化:

以下日期和时间转换的后缀字符是为 't' 和 'T' 转换定义的。这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 'L' 用作秒中的毫秒)。

以下转换字符用来格式化时间:

'H'     24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。

'I'     12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。

'k'     24 小时制的小时,即 0 - 23。

'l'     12 小时制的小时,即 1 - 12。

'M'     小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。

'S'     分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。

'L'     秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。

'N'     秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。

'p'     特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。

'z'     相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。

'Z'     表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。

's'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。

'Q'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。

以下转换字符用来格式化日期:

'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。

'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。

'h'     与 'b' 相同。

'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"

'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"

'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99

'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。

'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。

'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。

'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。

'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31

'e'     一个月中的天数,被格式化为两位数,即 1 - 31。

以下转换字符用于格式化常见的日期/时间组合。

'R'     24 小时制的时间,被格式化为 "%tH:%tM"

'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。

'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。

'D'     日期,被格式化为 "%tm/%td/%ty"。

'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。

'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。

vue 自定义过滤器 格式化金额(保留两位小数)

1.js部分 import Vue from 'vue' Vue.filter('money', function(val) { val = val.toString().replace(/\$|\, ...

jQuery Validate自定义金钱验证,是否为金额格式,保留两位小数,并支持千分制货币格式

//自定义函数实现 isMoney: function (value, element){ // return this.optional(element) || /(^[1-9]([0-9]+)?( ...

ToString()格式和用法大全,C#实现保留两位小数的方法

C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...

NOI-1.1-04输出保留3位小数的浮点数

04:输出保留3位小数的浮点数 总时间限制:  1000ms 内存限制:  65536kB 描述 读入一个单精度浮点数,保留3位小数输出这个浮点数. 输入 只有一行,一个单精度浮点数. 输出 也只有一 ...

python格式化输出保留2位小数

我是小白就不用多说了,学习python做了个练习题,结果运行了一遍,发现输入金额后得到的有很多位小数, 虽然不知道为什么,但是看得很不舒服, 就想到应该把让小数点后只保留2位数 找到了方法:将{0}改 ...

Android double输出时保留两位小数

方法1,在代码中操作 this.totalTextview = (TextView) findViewById(R.id.package_total_money); double decimalBal ...

JS格式化数字金额用逗号隔开保留两位小数

JS格式化金额,正则方式修改. /** * 格式化金额 * @param {[type]} v [要转换的数字] * @param {[type]} len [小数点位数,默认2位] * @param ...

格式化数据保留两位小数,输入格式为 :xxx,xx,,,,x,,(x为浮点数)

/** * 格式化字符串 */ static String dataFormat(String data){ String formatedData = ""; // 浮点数正则表 ...

jQuery向界面输出时保留两位小数

通过JSTL下的标签实现,具体实现代码如下:

随机推荐

TestNG中用Parameters或DataProvider为测试方法传入参数

转载于网络   一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用 te ...

javascript中set与get方法详解

其中get与set的使用方法: 1.get与set是方法,因为是方法,所以可以进行判断. 2.get是得到 一般是要返回的   set 是设置 不用返回 3.如果调用对象内部的属性约定的命名方式是_a ...

apache重写

---- 本文旨在提供如何用Apache重写规则来解决一些常见的URL重写方法的问题,通过常见的实例给用户一些使用重写规则的基本方法和线索. 一.为什么需要用重写规则 ---- 网站的生命在于不断地进 ...

unity 导出 android安装包配置方案

原地址: 1.jdk本人安装的是win32版的(虽然系统是64位的.但听说装64位的导出 ...

JQuery 思维导图

JQuery 就这么点内容,但是他能做出很多很多的效果.

Kafka 简要使用说明

Kafka 简要使用说明 参考文章 Kafka背景及架构介绍 Apache kafka 工作 ...

debug网页时小问题The source attachment does not contain the source for the file

第一次debug总是出现下图问题,提示我没加源码... The source attachment does not contain the source for the file ... 解决方法: ...

C++:钻石继承与虚继承

QUESTION:什么是钻石继承? ANSWER:假设我们已经有了两个类Father1和Father2,他们都是类GrandFather的子类.现在又有一个新类Son,这个新类通过多继承机制对类Fat ...

git —— 分支

git中每一个分支相当于一个时间线 并列且相互平行 控制用指针控制~ 1.第一种创建命令: $ git branch 分支名称 —— 创建分支 $ git checkout 分支名称 —— 切换分支 ...

Java String、StringBuilder和StringBuffer