S. Oleg Asked:2020-09-06 17:15:16 +0000 UTC2020-09-06 17:15:16 +0000 UTC 2020-09-06 17:15:16 +0000 UTC Bigdecimal精度损失 772 创建一个变量BigDecimal bet = new BigDecimal(0.00000010)并将其传递给服务器,它返回一个与预期不同的值。目前尚不清楚为什么会这样。 java 1 个回答 Voted Best Answer Ksenia 2020-09-06T17:28:58Z2020-09-06T17:28:58Z 当使用接受作为输入的构造函数double时,会出现令人不快的功能,如文档中所述。 由于实数在转换为二进制形式时通常由无限二进制分数表示,因此在创建对象时,例如,BigDecimal(0.1)存储在对象中的尾数将变得非常大。(文章链接) 因此,该号码将存储不准确。在这方面,最好使用将字符串作为输入的构造函数: Bigdecimal bet = new Bigdecimal("0.00000010");
当使用接受作为输入的构造函数
double时,会出现令人不快的功能,如文档中所述。因此,该号码将存储不准确。在这方面,最好使用将字符串作为输入的构造函数: