本来想网上找个例子,结果让人很失望,网上的大部分用的DecimalFormat 、NumberFormat,我随便搞了一个长点的字符串,发现大部分都有小数进度问题。

而且网上的人,都不测试的,写的例子明显不打算在生产上跑,所以还是自己写了一个。

package com.test;

import java.text.ParseException;
import java.util.ArrayList; public class FormatNumber {
/**
* @Title: addThousandSeparator
* @Description: 格式化数字为千分位
* @param text
* @return 设定文件,由于double的位数有限制,所以这里自己拆分的方式来做。
* @return String 返回类型
*/
public static String addThousandSeparator(String text) {
if (text == null) {
return null;
}
int index = text.indexOf(".");
if (index > 0) {
String integerPartial = text.substring(0, index);
String decimalPartial = text.substring(index);
return addThousandSeparatorForInteger(integerPartial) + decimalPartial;
} else {
return addThousandSeparatorForInteger(text);
}
} // 只给整数加千分位分隔符
public static String addThousandSeparatorForInteger(String text) {
int index = text.indexOf(".");
if (index != -1) {
return text;
} else {
int length = text.length();
ArrayList<String> stringContainer = new ArrayList<String>();
while (length > 3) {
stringContainer.add(text.substring(length - 3, length));
length = length - 3;
}
stringContainer.add(text.substring(0, length)); // 将最前面的小于三个数字的也加入到数组去
StringBuffer buffer = new StringBuffer();
for (int i = stringContainer.size() - 1; i >= 0; i--) {
buffer.append(stringContainer.get(i) + ",");
}
buffer.deleteCharAt(buffer.length() - 1);
return buffer.toString();
}
} public static void main(String[] args) throws ParseException {
System.out.println(FormatNumber.addThousandSeparator(".331234567"));
System.out.println("length:" + "1324678881122.331234567".length());
System.out.println("index:" + "1324678881122.331234567".indexOf("."));
System.out.println(FormatNumber.addThousandSeparator("1324678881122.331234567"));
/**
* 结果如下: length:23 index:13 1,324,678,881,122.331234567
*/ System.out.println("length:" + "1324678881122.331234567".length());
System.out.println("index:" + "1324678881122.331234567".indexOf("."));
System.out.println(FormatNumber.addThousandSeparator("1324678881122"));
System.out.println(FormatNumber.addThousandSeparator("324678881122"));
System.out.println(FormatNumber.addThousandSeparator("22"));
System.out.println(FormatNumber.addThousandSeparator(""));
System.out.println(FormatNumber.addThousandSeparator(" "));
System.out.println(FormatNumber.addThousandSeparator(".331234567"));
System.out.println(FormatNumber.addThousandSeparator("0.331234567"));
System.out.println(FormatNumber.addThousandSeparator(null));
} }

  

Java给整数部分的字符串加上千分位分隔符的更多相关文章

  1. 【Java】给整数加上千分位分隔符

    package com.testEmp; import java.text.DecimalFormat; public class NumberFormat { public static void ...

  2. 用robotframework 标准库String解决由于存在千分位分隔符导致两个数值不相等的问题。

    在编写robotframework自动化断言的过程中,我遇到了如下问题: 我想写一个两个金额判断是否相等的断言,其中一个金额是展示字段存在千分位分隔符,另一个金额是input带入字段,没有千分位分隔符 ...

  3. sql数值显示成千分位分隔符的形式

    ), )--带小数点 ), ),'.00','')--不带小数点

  4. 数字千分位处理,number.js,js保留两位,整数强制保留两位小数

    杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...

  5. input输入框数字转带千分位的字符串

    数字转带千分位的字符串 思路 先获取要转换的数字,对其进行分割 小数部分具体需要保留多少位,具体处理 整数部分用正则做替换 将小数部分和整数部分合计 代码 注意: 本文是基于 jQuery 写的,稍稍 ...

  6. [C#]将千分位字符串转换成数字

    关键代码: /// <summary> /// 将千分位字符串转换成数字 /// 说明:将诸如"–111,222,333的千分位"转换成-111222333数字 /// ...

  7. [java] 将整数在千分位或万分位以逗号分隔表示

    简单使用DecimalFormat的功能就能做到了,代码如下: package com.testEmp; import java.text.DecimalFormat; public class Nu ...

  8. java让数字显示千分位 mark

    /** * 格式化数字为千分位显示: * @param 要格式化的数字: * @return */ public static String fmtMicrometer(String text) { ...

  9. java工具类 --千分位方法

    /** * 千分位方法 * @param text * @return */ public static String fmtMicrometer(String text) { DecimalForm ...

随机推荐

  1. yum源更换为本地光盘

    下面来示范一下如何使用光盘文件配置yum库.注意:一定要把/etc/yum.repos.d里的其他文件移到其他地方,否则会报错 进入到/etc/yum.repos.d目录中后创建Yum配置文件: [r ...

  2. 简单 babel plugin 开发-使用lerna 工具

    babel在现在的web 应用开发上具有很重要的作用,帮助我们做了好多事情,同时又有 比较多的babel plugin 可以解决我们实际开发上的问题. 以下只是学习下如果编写一个简单的babel pl ...

  3. PHP获取站点根目录

    http://rmingwang.com/php-access-to-the-site-root-directory.html php绝对路径与相对路径详解完整版 http://www.phpthin ...

  4. e.target和e.srcElement

    IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...

  5. MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。

    MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.

  6. Mysql 通信协议抓包分析

    mysql在传输层使用的TCP协议.一个TCP payload可能有多个mysql packet.如下图所示. TCP head TCP payload (mysql packet1, mysql p ...

  7. centos7 如何在用户级对资源进行限制

    我们已经知道,centos7上建议使用sytemd进行资源限制. 本文主要介绍如何使用systemd进行用户级资源限制. 以orange用户为例. 方案一 临时有效 配置如下: # systemctl ...

  8. ps 和 top 的cpu的区别

    cpu的计算 ps cpu的定义 man page中给出的定义: cpu utilization of the process in "##.#" format. Currentl ...

  9. hanlp自然语言处理包的基本使用--python

    hanlp拥有:中文分词.命名实体识别.摘要关键字.依存句法分析.简繁拼音转换.智能推荐. 这里主要介绍一下hanlp的中文分词.命名实体识别.依存句法分析,这里就不介绍具体的hanlp的安装了,百度 ...

  10. Maven3.5.0安装与配置+Eclipse应用

    Maven是一个优秀的构建工具(类似于 Ant, 但比 Ant 更加方便使用),能帮助我们自动化构建过程,从清理.编译.测试到生成报告,再到打包和部署.只需要输入简单的命令,Maven就可以帮我们处理 ...