如何解决如何强制使用两个小数点.00来存储浮点数
我需要什么:我需要在Java(11)中存储一个带有两个小数的Float
我所做的事情:我使用BigDecimal类没有问题,即使小数部分为.00,小数位数也按预期进行
我的问题是什么:当我使用.floatValue()将BigDecimal转换为浮点数时,如果小数部分为.00,它将删除结尾的0
一些例子
- 2.45(大十进制)以浮动形式转换为2.45
- 2.00(Big dec)作为Float转换为2.0 ==>我想要2.00
任何解决方案?谢谢!
编辑:将float作为字符串输出不是我想要的,我需要将变量存储为Float
我迅速检查了DecimalFormat,但此刻我只发现了将其格式化为字符串的方法。
EDIT2:我正在使用REST api,我想返回一个有的JSON,以将价格输出为Float(否则我将以大十进制形式返回)。每次返回2位小数的价格。如上所述,它适用于所有情况,但小数部分为.00(.01到.99可以正常工作)时除外。 JSON中的Float类型是我无法更改的约束。
解决方法
您不能存储带有两位小数的浮点数。浮动不是这样工作的。它们是数字的二进制表示形式,而不是十进制数。
您可以使用两位小数来格式化浮点数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。