将double转换为int而不损失Java的精度

Kri*_*iou -2 java double integer

我想将双精度(例如,价格为1.90的价格)转换为没有损失的整数!我正在制作一个处理货币的程序,我必须将其输入为双精度数,然后将其转换为整数,以便能够对其进行处理,例如,当我有1.90欧元并将其转换为美分时,它将显示为189美分而不是190美分!请帮助我:)预先感谢

Dar*_*usz 5

检查有关在JLS中Java中的double和float行为的详细信息

好吧,您可以将值舍入到所需的精度。只要您在给定格式的精度范围内(浮点数为〜15位,浮点数为〜7位),您将获得良好的结果。

double fractValue = 1.90; // 1.8999999....
int val = (int)Math.round(fractValue*100);
Run Code Online (Sandbox Code Playgroud)

BigDecimal不过,使用它是一个更好的主意。那样您将永远不会失去任何精度。