热血的盒饭 2024-05-15 12:06 采纳率: 0%
浏览 2

在Java中传值时大整数怎么存储?

测试的时候我将输入0,17804138921454881,BigDecimal[] s接受到的却是 0:0 ; 1:17804138921454880这怎么解决?

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-15 12:06
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题

    您提问的目的是解决在Java中使用BigDecimal数组接收大整数时,数值精度丢失的问题。

    问题出现原因

    问题出现的原因是Java中的BigDecimal在处理非常大的整数时,可能会因为精度问题导致数值丢失。在您的例子中,17804138921454881被错误地接收为17804138921454880,这表明了精度的丢失。

    问题解决方案

    为了解决这个问题,您需要确保在接收和存储大整数时使用BigDecimal的正确方法,并且在整个处理过程中保持数值的精度。

    提供代码

    以下是使用BigDecimal处理大整数的一个示例代码:

    import java.math.BigDecimal;
    
    public class BigDecimalExample {
        public static void main(String[] args) {
            BigDecimal[] s = new BigDecimal[2];
            String bigNumberAsString = "17804138921454881";
    
            // 使用BigDecimal的构造函数接收字符串形式的大整数
            s[1] = new BigDecimal(bigNumberAsString);
    
            // 打印结果
            for (int i = 0; i < s.length; i++) {
                System.out.println(i + ": " + s[i]);
            }
        }
    }
    

    代码运行方式

    要运行这段代码,您需要有Java开发环境,如JDK(Java Development Kit)。将代码保存为.java文件,使用javac命令编译,然后使用java命令运行编译后的类文件。

    代码预期运行结果

    0: null
    1: 17804138921454881
    

    请注意,第一个元素s[0]null,因为您没有为它赋值。如果您需要为它赋值,可以使用相同的方法。

    推荐相关链接

    这些链接可以为您提供更多关于BigDecimal和数值精度处理的信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月15日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度