问题

我正在尝试从字符串中读取一些BigDecimal值。假设我有这个字符串:"1,000,000,000.999999999999999",我希望得到一个BigDecimal。这样做的方法是什么?

首先,我不喜欢使用字符串替换的解决方案(替换逗号等)。我认为应该有一些整洁的格式化程序为我做这项工作。

我找到了一个DecimalFormatter类,但是因为它运行的时间很长 - 大量的精度都会丢失。

那么,我该怎么做呢?

#1 热门回答(83 赞)

在DecimalFormat中查看setParseBigDecimal。使用此setter,parse将为你返回BigDecimal。

#2 热门回答(52 赞)

String value = "1,000,000,000.999999999999999";

BigDecimal money = new BigDecimal(value.replaceAll(",", ""));

System.out.println(money);

完整代码证明noNumberFormatException被抛出:

import java.math.BigDecimal;

public class Tester {

public static void main(String[] args) {

// TODO Auto-generated method stub

String value = "1,000,000,000.999999999999999";

BigDecimal money = new BigDecimal(value.replaceAll(",", ""));

System.out.println(money);

}

}

输出> 1000000000.999999999999999

#3 热门回答(18 赞)

以下示例代码运行良好(需要动态获取区域设置)

import java.math.BigDecimal;

import java.text.NumberFormat;

import java.text.DecimalFormat;

import java.text.ParsePosition;

import java.util.Locale;

class TestBigDecimal {

public static void main(String[] args) {

String str = "0,00";

Locale in_ID = new Locale("in","ID");

//Locale in_ID = new Locale("en","US");

DecimalFormat nf = (DecimalFormat)NumberFormat.getInstance(in_ID);

nf.setParseBigDecimal(true);

BigDecimal bd = (BigDecimal)nf.parse(str, new ParsePosition(0));

System.out.println("bd value : " + bd);

}

}

java字符串转换bigdecimal_安全字符串到BigDecimal转换相关推荐

  1. Java中将科学记数法字符串转换成数字字符串

    开发过程中,有时候科学记数法的数字,需要转换成直观的数字. 这个时候就要想办法转换一下,好在java已经提供了现成的方法. 代码如下: import java.math.BigDecimal;@Tes ...

  2. java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  3. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...

    本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...

  4. java中的字符,字符串,数字之间的转换(亲测)

    string 和int之间的转换 string转换成int  :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...

  5. Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

    文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...

  6. [剑指offer]面试题第[67]题[Leetcode][JAVA][第8题] 字符串转换整数 (atoi)[字符串]

    [问题描述] 请你来实现一个 atoi 函数,使其能将字符串转换成整数.首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止.接下来的转化规则如下:如果第一个非空字符为正或者 ...

  7. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示

    java 转换图片为字符串,将字符串转换成图片显示, 该方法只适用于比较小的图片传输,50K以内: try{ // 将图片转换成字符串 File imgFile = new File("f: ...

  8. java中的字符,字符串,数字之间的转换

    java中的字符,字符串,数字之间的转换 string 和int之间的转换 string转换成int :Integer.valueOf(" ") int转换成string : St ...

  9. 剑指Offer(Java版):把字符串转换成整数

    2019独角兽企业重金招聘Python工程师标准>>> 题目:实现一个函数 stringToInt,实现把字符串转换成整数这个功能,不能使用 atoi 或者其他类似的库函数. 题目解 ...

最新文章

  1. 莫烦老师的tensorflow降级方法
  2. CentOS下MongoDB的升级
  3. ResNet网络解决的一些事
  4. ansible 批量部署ssh免密钥
  5. oracle varchar2改成大字段类型clob,读取大字段内容
  6. JSP的自定义标签(四)之定义函数
  7. Javascript:自定义构造函数的优化
  8. python集合和字典创建通讯录_Python基础-字典和集合
  9. linux 深度攻略 pdf,万字深度详细分析 全民主公深度攻略
  10. 算法题目打卡:Ques20201020
  11. 离散数学 第一章 命题逻辑 1-5重言式与蕴含式
  12. 没有基础学习java编程,去培训机构怎么样?
  13. APP软件开发的步骤
  14. termux安装以及基本配置
  15. 逆幂律模型_为“成功”建模:幂律分布
  16. 0306--iOS之阅读View Controller Programming Guide for iOS---(三)Presentations and Trasitions
  17. dp 这个单位是安卓发明的么?为什么 px=dp*(dpi/160)?
  18. 焦距 对焦 变焦--摄影基础理论(3)
  19. 在英特尔硬件上部署深度学习模型的无代码方法 关于OpenVINO深度学习工作台的三部分系列 第二部
  20. .net android 推送消息,android – FCM(Firebase云消息传递)推送通知与Asp.Net

热门文章

  1. 2021/4/24团队设计天梯赛L3题目集及部分题解
  2. Lattice Diamond设置Notepad++为默认编辑器
  3. 本地计算机上的用友通服务启动后又停止了,用友通服务启动后又停止了?
  4. arcgis前端(2)----->基础篇--发布一个自定义地图及加载自定义地图/底图
  5. error: Failed dependencies: /sbin/service is needed by
  6. 张1诉李2离婚纠纷案
  7. Deepin 深度Linux操作系统英伟达显卡驱动安装及晟兴三维数字地球安装
  8. 融媒体内容数据安全防护系统荣获工信部示范项目
  9. 欺骗的艺术——第二部分(3)
  10. 基于lvgl与mplayer音乐播放器