首页 > 解决方案 > 长小数分隔符(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

标签: javaspring-bootnumberformatter

解决方案


如果我理解正确,这就是您要实现的目标:

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);

推荐阅读