Java 为什么将字符串转换为double可能会丢失精度?
我需要双倍,这样所有者帐户也可以变为负数。你可能在公寓的辩护中说钱是整数,试着把它改成双倍…-似乎Java 为什么将字符串转换为double可能会丢失精度?,java,string,double,Java,String,Double,我需要双倍,这样所有者帐户也可以变为负数。你可能在公寓的辩护中说钱是整数,试着把它改成双倍…-似乎公寓是一个类型数组公寓,其中,名为money的装置对象字段为int类型 -但您将其值分配为双精度类型,因此需要从双精度到整数的显式转换 例如: appartment[i].money=(int)Double.parseDouble(word[2])在Java中表示货币的最佳实践是使用BigDecimal。有关更多详细信息,请参阅 显然,显然,appartment[i].money=Double.pa
公寓是一个类型数组公寓,其中,名为money
的装置对象字段为int
类型
-但您将其值分配为双精度类型,因此需要从双精度到整数的显式转换
例如:
appartment[i].money=(int)Double.parseDouble(word[2])代码>在Java中表示货币的最佳实践是使用BigDecimal。有关更多详细信息,请参阅 显然,显然,appartment[i].money=Double.parseDouble(单词[2])代码>在这里是个问题。如果货币类型为int
,则您应该将单词[2]的值强制转换为int
等
appartment[i].money=(int(Double.parseDouble(word[2]);
或者您应该将其解析为一个整数,比如
装置[i].money=Integer.parseInt(单词[2]);
使用这个
possible loss of precision.
required: int
found: double
“需要双倍,以便所有者帐户也可以变为负数”一个int
可以是负数。请注意,货币值通常应表示为int值(单位:美分)也要避免数字的浮点表示。更不用说浮点类型不应用于存储金钱等金融价值……更不用说公寓拼写错误。我还删除了家庭作业
标记,因为这已被去除。
possible loss of precision.
required: int
found: double
appartment[i].money = Integer.parseInt(word[2]);