java - 将带有逗号/小数的大数转换为 Double
问题描述
我的服务器正在返回一个类似 2,100.00 的字符串。
当我尝试将此字符串转换为双精度时,我得到一个 NumberFormatException。
Double.valueOf("2,100.00");
我是否必须删除小数/逗号,转换并重新添加小数?
解决方案
您可以以十进制格式设置自定义分隔符
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
symbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(symbols);
Number number = df.parse(str);
然后你可以使用number
. 要将其转换为双倍,您可以这样做number.doubleValue()
推荐阅读
- angular - 错误模块构建失败(来自 ./node_modules/sass-loader/lib/loader.js):
- python - 在同一台机器上拥有不同版本的 Python 和 Anaconda
- c# - 打印网页而不显示打印对话框
- python - 为什么相同值的 2 个变量(int)具有相同的内存 id(是同一个对象)?
- php - 在 php 代码中使用“INSERT INTO”语句不起作用
- android - 如何允许 PC 访问 Android 设备文件?
- f# - FAKE 启动和终止进程
- linux - 交错按列排序的行
- visual-studio-code - 在VSCode中按数字关闭编辑器组的快捷方式?
- angular - 如何在没有 *ngFor 的情况下在 FormArray 中引用 FormGroup:我遇到错误