java - 舍入多头并重新格式化
问题描述
我试图弄清楚如何重新格式化从 API 获得的长值。多头价值代表股票的市值,所以它自然而然地变化,但基本上我想要的是四舍五入和缩写。
我在这里找到了一个代码来缩写数字,具体取决于它的高度,但我不知道如何保留小数。
例如,如果我查询“NFLX”,我会返回“117173403648”。使用该代码,我将返回 117B。我希望输出是“117.17B”。
在缩写数字之前,我已经尝试过 Math.round() 函数,但它似乎没有按照我想要的方式工作,DecimalFormat 也没有。当然我都用错了。
这是我在 SO 上找到并修改的代码:
public static String abbreviateNumber(long marketCap) {
long temp = marketCap / 1000000000;
if (temp > 0) {
return temp + "B";
}
temp = marketCap / 1000000;
if (temp > 0) {
return temp + "M";
}
temp = marketCap / 1000;
if (temp > 0) {
return temp + "K";
}
return String.valueOf(marketCap);
}
使用这个,marketCap 的输出是 117B,但我想要 2 个小数,并且仍然保留这个缩写方法。
谢谢,非常感谢任何帮助。我是编程新手,并且在我去的时候弄清楚了。
解决方案
使用 DecimalFormat 和double
DecimalFormat format = new DecimalFormat("#0.00B");
long marketCap = 117173403648L;
double value = marketCap / 1000000000.0;
System.out.println(format.format(value));
117.17B
推荐阅读
- spring-webflux - 连接重用和事务(关系)
- r - R向量组合中的样本函数
- c++ - 如何要求约束中存在函数?
- java - 我试图为我的课程做一个税收计算器,但我被困住了,有人可以帮忙,因为我不知道(Java)
- events - 如何用solidity语言删除这个ParserError?
- excel - Excel - 甘特图 - 使用工作日功能 - 工人假期
- pug - 如何确定 Pugjs (jade) 上的块注释结束?
- ios - InAppBrowser 事件处理程序未触发:Ionic 5 + Angular 10 + Capacitor
- python - 如何将 pandas 数据帧转换为带有标题的多级 JSON?
- maven - apache maven 构建失败 - 无法执行目标 org.apache.felix:maven-bundle-plugin:4.2.0:manifest