gpt4 book ai didi

java - 获取存储的实际数字

转载 作者:行者123 更新时间:2023-11-29 08:01:44 24 4
gpt4 key购买 nike

我有一个使用泰勒级数创建科学计算器的项目。此外,我正在分析 ieee 754 标准浮点系统的数字。

在我的计算器中,用户可以选择他们想要单精度还是 double :我使用 float 和 double 变量, 然后我按照 ieee 754 规范分析数字。

如果用户想要 double ,则分析如下:

double analyze=3.45
BigDecimal bd=new BigDecimal(analyze)

这给了我

3.45000000000000017763568394002504646778106689453125
  1. 这个数字是不是以二进制格式存储在电脑内存中的实际数字?

  2. 如果不是,我可以通过任何方式获得存储的数字的实际值吗?

  3. 还有为什么会这样?

    double analyze=0.5
    BigDecimal db=new BigBecimal(分析)

它只打印 0.5 - 为什么我丢失了有效数字?

谁能告诉我为什么会这样

        BigDecimal one=new BigDecimal(0.1);
BigDecimal five=one.multiply(new BigDecimal(5)) ;
System.out.println("5 times 0.1 is "+" "+ five);

System.out.println("But the 0.5 in BigDecimal is " + " "+ new BigDecimal(0.5));

通过运行这个你得到 5 倍 0.1 是 0.5000000000000000277555756156289135105907917022705078125 但是BigDecimal中的0.5是0.5

最佳答案

1.i want to ask you is this number is the actual number which is stored in binary format in the pc memory ??

是的。

2.if it isn't is any way i can have the real value of the number that is stored

嗯,是的,所以没问题。

  1. it prints me only -->0.5 why do i loose signifigant digits?

你没有; 0.5 是以二进制格式存储的确切数字。

关于java - 获取存储的实际数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921951/

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