Ada*_*dam 6 .net vb.net floating-point
我一直在搜索互联网,试图以简单的形式理解为什么会出现这种情况.
Dim mysingle As Single = 456.11
Dim mybool As Boolean = mysingle = 456.11
Run Code Online (Sandbox Code Playgroud)
在上面的行中,mybool变得虚假.当我将单个放入双重时,我发现了这种行为,我发现了额外的数字..net文档声明单个是一个近似值:S
我是一个32位浮点数吗?但是当我明确说出这个数字是什么时,为什么会出现额外的数字..当然内存应该存储我的数字的任何一边的数字是0来填满内存位置?!
我的大脑在这一个上炸了:(
Ahm*_*eed 10
在第二个语句中比较的值不被视为a Single,而是被视为a Double.既然你正在使用VB.NET,你可以用a后缀!来强制它到a Single,这将返回True:
Dim mysingle As Single = 456.11
Dim mybool As Boolean = mysingle = 456.11!
Run Code Online (Sandbox Code Playgroud)