gpt4 book ai didi

java - 如何使用 DecimalFormat 将数字移动 4 位小数

转载 作者:行者123 更新时间:2023-12-02 06:13:02 25 4
gpt4 key购买 nike

我正在尝试将 111.206 亿美元转换为 11.2 亿美元。我的问题是如何在小数点后每次移动 4 位小数,因为我将在 Excel 中动态插入值。

最佳答案

原始标题有点误导,因此我的回答提供了不止一种完成此任务的方法。第一部分反射(reflect)了对新标题的答案。

11,120.6 向左移动四位小数不会得到 1.12;更像是 1.112 或 1.11(取决于小数位数)。但无论如何,这里有一些想法:

DecimalFormat方式:

float num = 11120.6;
DecimalFormat numFormat = new DecimalFormat("#.00");
System.out.println(numFormat.format(num));

如果纯粹是视觉效果,你可以这样做:

float num = 11120.6;
System.out.println(String.format("%.2f", num));

这个会给你小数点右边两位小数,产生 1.11。

或者像这样怎么样?

float num = 11120.6;
num /= 10000.0;

这将为您提供 1.11206。

您可以根据数字创建if else逻辑或类似于除/乘适当数量的逻辑,即:

if (num >= 10)
{
num /= 10.0;
}
else if (num >= 100)
{
num /= 100.0;
}
...etc...

您还可以执行类似的操作以及与上面类似的逻辑:

BigDecimal num = new BigDecimal("11120.6");
num = num.movePointRight(-4);

除非有人能想到更好的方法,否则您还需要知道之前的数字以百万为单位,而新的数字以十亿为单位。也许将其作为枚举存储在单独的变量中。

你还可以做一些其他的事情,但是效率不高,这就是我们在大学的 C++ 课上闲逛时所做的事情。您可以为某些数字大小创建多个数组或列表(取决于您所做的事情)。当您想要显示一些数字(例如...listBillions)时,您可以将该列表中的任何数字除以 1000000000.0,或将其格式化为字符串。因此,最终您会得到数十个、数百个、数千个等的列表,并且您将始终知道 listBillions[i] 只能是十亿,无论其显示的形式如何。

关于java - 如何使用 DecimalFormat 将数字移动 4 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com