C#浮动变量显示epsilon数字

时间:2014-07-31 12:19:21

标签: c#

我在向float变量赋值时遇到问题。以下是代码

float f1=99999999999.959f;

当我从此变量中检索值时,它显示 1.0E + 11 值。我想得到我原来的价值。任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

在C#中,浮点值的精度只有7位数,因此您可以从该数据类型中获得最佳效果。如果您需要更高的精度,请使用double或decimal。

http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx

答案 1 :(得分:0)

您将返回您输入的数字,以及浮点数(约6-7 d.p。)的准确度

首先,值的存储精度有限,其次显示它的方式可能会进一步舍入。

如果你使用double,你会将精度提高到15 d.p.左右,或者你可以进一步使用小数。

答案 2 :(得分:0)

基元类型浮动加倍近似值

以下是对其精确度的极好回应:How to Calculate Double + Float Precision

即使十进制也存在此问题。 C#不附带 big num 类,但您可以使用库。如果您需要更准确的十进制数,然后十进制(±1.0×10 ^ -28到±7.9×10 ^ 28),您应该尝试它们。

示例:https://bcl.codeplex.com/(BigRational)