首页 >

为什么java的BigDecimal也无法精准计算double类型吗? – 网络|

躔拼音怎么写,ps中怎么滤色,工信部备案有什么好处为什么java的BigDecimal也无法精准计算double类型吗? - 网络|为什么java的BigDecimal也无法精准计算double类型吗
  1. Theresultsofthisconstructorcanbesomewhatunpredictable.OnemightassumethatwritinginJavacreatesawhichisexactlyequalto0.1(anunscaledvalueof1,withascaleof1),butitisactuallyequalto0.1000000000000000055511151231257827021181583404541015625.Thisisbecause0.1cannotberepresentedexactlyasa(or,forthatmatter,asabinaryfractionofanyfinitelength).Thus,thevaluethatisbeingpassedintotheconstructorisnotexactlyequalto0.1,appearancesnotwithstanding.
  2. Theconstructor,ontheotherhand,isperfectlypredictable:writingcreatesawhichisexactlyequalto0.1,asonewouldexpect.Therefore,itisgenerallyrecommendedthattheStringconstructorbeusedinpreferencetothisone.

由于double本身是不精确的,如果使用double作为构造函数参数,也会导致BigDecimal对象不精确,比如使用浮点数0.1来构造一个BigDecimal对象,它的实际值为0.1000000000000000055511151231257827021181583404541015625,所以,需要精确计算的场景,推荐使用String类型的构造函数。

总之,在需要精确浮点数计算的场景,不要在任何地方使用double,float类型的变量,应该使用String类型来创建BigDecimal.


为什么java的BigDecimal也无法精准计算double类型吗? - 网络|
  • 电信数据支撑岗位工资高吗? - 网络|
  • 电信数据支撑岗位工资高吗? - 网络| | 电信数据支撑岗位工资高吗? - 网络| ...

    为什么java的BigDecimal也无法精准计算double类型吗? - 网络|
  • 请问大学学软件工程的学生日语过N1.毕业后去日本从事IT行业,年薪30万攒下10万这个愿景能实现吗? - 网络|
  • 请问大学学软件工程的学生日语过N1.毕业后去日本从事IT行业,年薪30万攒下10万这个愿景能实现吗? - 网络| | 请问大学学软件工程的学生日语过N1.毕业后去日本从事IT行业,年薪30万攒下10万这个愿景能实现吗? - 网络| ...

    为什么java的BigDecimal也无法精准计算double类型吗? - 网络|
  • 现在好多互联网公司都是跟培训机构合作,可不可信? - 网络|
  • 现在好多互联网公司都是跟培训机构合作,可不可信? - 网络| | 现在好多互联网公司都是跟培训机构合作,可不可信? - 网络| ...