如果是,请向我解释原因。我的数学能力不再那么强。因此,对这些问题级别的弱点感到抱歉。
根据C# documentation (of computer programming for that language) on Microsoft site,它们的变量float类型在1.5×1e-45和3.4×1e + 38之间?
但是, 1e-3 等于 0.001 ,而 1e-6 等于 0.000001 。这意味着我们减少负指数的次数越多,所得的值就越少,但一个仍大于零。
这是问题所在,我尝试使用给定值 -10 的float变量作为期望出现错误的值,但令我惊讶的是, -10 被接受了。 我很困惑。
答案 0 :(得分:3)
文档中没有明确说明,但是两个浮点类型已签名。因此-10可以由浮点类型表示,就像10一样。
答案 1 :(得分:1)
有几件事要注意。
第一个是float
(因此double
)被签名,因此值可以是正数或负数(或零)。
另一个是范围是精度问题。如果您尝试将float
的绝对值设置为比其无法处理的绝对值小,例如1E-50
,它将被设置为零而不是错误;当您将1×10 -50 舍入到它可以应付的精度时,这就是您得到的,而如果您尝试为其提供大于它可以处理的绝对值的值,例如{{1 }},然后将其设置为∞(对于1E50
,则将其设置为-∞),因为同样,它也可以表示很大的东西。
答案 2 :(得分:0)
该C#文档编写得不好,并且有一些错误或遗漏:
float
的真实值为: