如何强制将浮点数存储为两位小数 (.00)

How to force a float to get stored with two decimals (.00)

我需要什么:我需要在 java (11)

中存储一个带两位小数的浮点数

我做了什么:我使用 BigDecimal class 没问题,即使小数部分为 .00

,比例也符合预期

我的问题是什么:当我使用 .floatValue() 将 BigDecimal 转换为浮点数时,如果小数部分为 .00

,它会删除尾随 0

几个例子

  1. 2.45(大十进制)被转换为 2.45 作为 Float
  2. 2.00(Big dec)作为浮点数转换为 2.0 ==> 我想要 2.00

有什么解决办法吗?谢谢!

编辑:将浮点数输出为字符串不是我想要的,我需要将变量存储为浮点数

我快速检查了 DecimalFormat,但目前我只找到了将其格式化为字符串的方法。

EDIT2:我正在研究 REST api,我想 return 一个 JSON 其中 输出价格一个浮点数(否则我会 return 将其编辑为一个大的小数)我想每次都 return 带 2 位小数的价格。它适用于所有情况,除非小数部分是 .00(.01 到 .99 可以正常工作),如上所述。 JSON 中的 Float 类型是我无法更改的约束。

您不能存储带两位小数的浮点数。这不是花车的工作方式。它们是数字的二进制表示,而不是十进制。

您可以格式化带两位小数的浮点数。