java - 长小数分隔符(Java/Spring)
问题描述
我需要将小数点分隔符放在一个 Long 中,我尝试了多种方法,但我需要它是动态的,因为小数点分隔符可以改变,我尝试过,DecimalFormat format = new DecimalFormat("###.##");
但这不是动态的,它不起作用我想要它
示例 1
long amount = 123456;
int decimal = 2;
结果应该是Double newAmount = 1234.56
示例 2
long amount = 123456;
int decimal = 4;
结果应该是Double newAmount = 12.3456
解决方案
如果我理解正确,这就是您要实现的目标:
Long amount = 123456;
int decimal = 2;
double newAmount = amount.doubleValue();
newAmount = newAmount / Math.pow(10, decimal);
使用java.lang.math的 pow 方法计算一个数的幂。
如果您想使用其中一个函数,请小心将您的变量声明为 Long 类型的对象,而不是原始类型。
正如所建议的,从一开始就使用双变量而不是长变量更简单:
double amount = 123456;
int decimal = 2;
amount = amount / Math.pow(10, decimal);
推荐阅读
- c++ - C++17:元组解包时只保留一些成员
- jpa - Spring Data:何时使用 Projection 接口和 DTO 投影?
- c# - swaggerui 返回可用选项列表
- javascript - 在 Javascript 中将 2 年添加到当前日期
- gcloud - 沉默`gcloud auth activate-service-account`
- python - 通过 Python 计算 RTT
- xml - 将 XML 文件导入 Excel 仅显示根目录
- oauth - 客户端在 OAuth2 中应如何处理令牌以做出 GUI 决策
- unity3d - HTC Vive 和 SteamVR 冻结 Unity
- powerbi - 访问上一条记录以比较 DAX POWER BI 中的值