C#中的浮点溢出

坦率

如果我尝试填充比float.MaxValue浮点数更大的数字会发生什么

我的代码中有这个:

int a;
float x;
float y;

...

float b = (a * x) / y;

我对此有两个问题:

  1. (a * x) 的结果是否存储在比浮点数大的温度中?并且只有在结果通过时才这样做float.MaxValue吗?
  2. 当总和的结果被塞入时,我会得到异常a吗?如果没有,我应该如何处理以防止灾难?
Xanatos

你会得到float.PositiveInfinity(或float.NegativeInfinity)...或者你只会留在float.MaxValuefloat.MaxValue + 1 == float.MaxValue)...浮点有一个“分辨率”,浮点越大,分辨率越低......最后两个浮点之间的距离是关于...

3,40282347E+38: float.MaxValue

3,40282326E+38:之前的浮动

2,028241E + 31:差异<--------- 2 * 2 ^ 31!

通过计算

float nearMaxValue = BitConverter.ToSingle(BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(float.MaxValue), 0) - 1), 0);
Console.WriteLine("{0:R}: float.MaxValue", float.MaxValue);
Console.WriteLine("{0:R}: previous float", nearMaxValue);
Console.WriteLine("{0:R}: difference", float.MaxValue - nearMaxValue);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#中的溢出异常,用于将浮点数转换为十进制

来自分类Dev

Java中的溢出浮点

来自分类Dev

忽略C ++中的浮点溢出和下溢错误

来自分类Dev

浮点数溢出,但不是在C中的printf参数时溢出吗?

来自分类Dev

在NodeJS中模拟C#溢出

来自分类Dev

如何在iostream中处理浮点溢出

来自分类Dev

C#浮点精度

来自分类Dev

堆栈溢出异常中C ++和C#之间的区别

来自分类Dev

堆栈溢出异常中C ++和C#之间的区别

来自分类Dev

Java / C#中的浮点计算中的显着精度差异

来自分类Dev

算术溢出检查如何在C#中工作

来自分类Dev

如何在C#中舍入浮点值?

来自分类Dev

Java / C#中浮点计算的精度差异很大

来自分类Dev

C#中的浮点/双型输入验证

来自分类Dev

如何在C#中显示浮点值?

来自分类Dev

如何在C#中舍入浮点值?

来自分类Dev

C#中的浮点/双型输入验证

来自分类Dev

c# 中单数(浮点数)相乘的意外结果

来自分类Dev

如何在 C# 中舍入浮点变量

来自分类Dev

使用AVAudioPCMBuffer将浮点值写入C#中的浮点指针数组(不安全或安全)

来自分类Dev

使用AVAudioPCMBuffer将浮点值写入C#中的浮点指针数组(不安全或安全)

来自分类Dev

C中的MAXINT溢出

来自分类Dev

堆栈溢出循环 c#

来自分类Dev

在C中显示浮点

来自分类Dev

C中的浮点异常

来自分类Dev

C中的浮点比较

来自分类Dev

算术溢出错误转换SQL中的浮点错误

来自分类Dev

此方法中堆栈溢出的原因(浮点数学)

来自分类Dev

Z3验证程序中的浮点溢出指示