gpt4 book ai didi

java - BigDecimal 使用带前导零的整数文字初始化

转载 作者:行者123 更新时间:2023-11-30 08:03:42 27 4
gpt4 key购买 nike

请帮助我理解以下代码,

    BigDecimal d = new BigDecimal(000100);
System.out.println(d); // output is 64!!!!

BigDecimal x = new BigDecimal(000100.0);
System.out.println(x); // output is 100

在任何场景下我们不应该使用BigDecimal来处理int或long值吗? (我的意思是离开性能和其他东西,我知道不建议使用 BigDecimal 仅处理 int 或 long)。我的数据混合了长整型值和十进制值,因此我想了解 BigDecimal。

最佳答案

问题不在于 BigDecimal ,而在于您传入的文字数字。当 int 文字以 0 开头时,Java将其解释为 octal number .

An octal numeral consists of an ASCII digit 0 followed by one or more of the ASCII digits 0 through 7 interspersed with underscores, and can represent a positive, zero, or negative integer.

这就是 000100 生成 64 的原因——1008 是十进制的 64。

十进制文字没有前导零,因此不要使用任何前导零。

BigDecimal d = new BigDecimal(100);

关于java - BigDecimal 使用带前导零的整数文字初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com