我在向float变量赋值时遇到问题。以下是代码
float f1=99999999999.959f;
当我从此变量中检索值时,它显示 1.0E + 11 值。我想得到我原来的价值。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
在C#中,浮点值的精度只有7位数,因此您可以从该数据类型中获得最佳效果。如果您需要更高的精度,请使用double或decimal。
答案 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)