gpt4 book ai didi

java - Java 中的溢出 float

转载 作者:行者123 更新时间:2023-11-29 07:43:54 24 4
gpt4 key购买 nike

import java.lang.*;

import java.math.*;

public class CFloatExample
{

// --------------------------------------------------------------------------------
// Name: main
// Abstract: This is where the program starts.
// --------------------------------------------------------------------------------
public static void main( String astrCommandLine[] )
{

// Declare float variables
float fltMinimum = 0;
float fltMaximum = 0;

// Set to min/max value of float
fltMinimum = -3.4E38F;
fltMaximum = 3.4E38F;

// Print min/max values for float
System.out.print( "float Data Type------------------------------------------------\n" );
System.out.print( "\tMinimum: " + fltMinimum + "\n" );
System.out.print( "\tMaximum: " + fltMaximum + "\n" );
System.out.print( "\n" ); // Blank line

// Confirm by subtracting and adding one to int (integer)
fltMinimum -= 1.0E0F;
fltMaximum += 1.0E0F;
System.out.print( "float Confirmation\n" );
System.out.print( "\tMinimum: " + fltMinimum + "\n" );
System.out.print( "\tMaximum: " + fltMaximum + "\n" );
System.out.print( "\n" ); // Blank line
}
}

我试图让 Float 变量溢出,但我没有得到那个结果,上面你可以看到我尝试导入一些库以查看是否会导致它发生,但最后它只是打印相同的数字在我加 1 之前和之后。

最佳答案

对于足够大的 float,添加 1 不会做任何事情:它们太大以至于它们会四舍五入到原来的值。

为了理解这一点,假设您要存储一个精度为 5 位小数的十进制值,并且您有 1000000。如果您加 1,您得到 1000001,但由于您只有五位精度,四舍五入为 1000000。

你必须添加更大的东西。

您可以做的是测试 Math.nextUp(Float.MAX_VALUE) == Float.POSITIVE_INFINITY,我怀疑这是您想说服自己的。

关于java - Java 中的溢出 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27535280/

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