Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 浮点精度在float.Parse中丢失_C#_.net_Parsing_Floating Point - Fatal编程技术网

C# 浮点精度在float.Parse中丢失

C# 浮点精度在float.Parse中丢失,c#,.net,parsing,floating-point,C#,.net,Parsing,Floating Point,现在s的值为10499.97 有没有办法保存所有的精确数字?您应该尝试使用十进制 您应该尝试使用十进制 尝试使用精度高于float的数据类型,例如double。由于数据类型float的大小,值的其余数字被截断: float s = float.Parse("10499.9705314636"); 印刷品: 10499.9705314636 尝试使用精度高于float的数据类型,例如double。由于数据类型float的大小,值的其余数字被截断: float s = float.Parse("1

现在
s
的值为
10499.97


有没有办法保存所有的精确数字?

您应该尝试使用
十进制

您应该尝试使用
十进制

尝试使用精度高于
float
的数据类型,例如
double
。由于数据类型
float
的大小,值的其余数字被截断:

float s = float.Parse("10499.9705314636");
印刷品:

10499.9705314636


尝试使用精度高于
float
的数据类型,例如
double
。由于数据类型
float
的大小,值的其余数字被截断:

float s = float.Parse("10499.9705314636");
印刷品:

10499.9705314636


你可能想调查一下这个问题。请特别注意二进制浮点类型和十进制浮点类型之间的差异。十进制数据类型很可能就是您在这里要查找的数据类型,因为float没有足够的有效数字来存储您试图准确解析的数字。

您可能需要查看数据类型。请特别注意二进制浮点类型和十进制浮点类型之间的差异。Decimal数据类型很可能就是您在这里寻找的,因为float没有足够的有效数字来存储您试图准确解析的数字。

使用
double
Decimal
。Decimal甚至可以保留尾随的零,而
double
可以提供更好的精度。如果你在处理货币问题,十进制是必须的,不要使用
float
,不。因为,
float
大约有7位精度。相关:还要注意的是
double
计算速度更快,但会出现舍入错误。@PanagiotisKanavos,
decimal
double
精度更高。。或者你是说在你的评论中,
Double
Float
更精确?使用
Double
decimal
。Decimal甚至可以保留尾随的零,而
double
可以提供更好的精度。如果你在处理货币问题,十进制是必须的,不要使用
float
,不。因为,
float
大约有7位精度。相关:还要注意的是
double
计算速度更快,但会出现舍入错误。@PanagiotisKanavos,
decimal
double
精度更高。。或者你是说在你的评论中,
Double
Float
更精确?天哪,我现在还不知道这一点。谢谢你,天哪,我现在还不知道。非常感谢。