gpt4 book ai didi

c# - 与 String 连接或转换为 String 时出现 Double 类型的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 14:54:36 25 4
gpt4 key购买 nike

我在项目中具有比较对象值并显示差异的日志记录功能,但我有一个场景,我有 double 据类型的纬度和经度值,但是当我将它与字符串连接或将其转换为字符串时,我得到了奇怪的行为,因为它在两个变量中显示相同的值,这完全无法理解它是如何发生的。

代码如下:

double value1 = -6.2845230102539063;
double value2 = -6.2845230102539098;
if (!object.Equals(value1, value2))
{
var result = value2 + " to " + value1;
Console.WriteLine(result);
}

Console.ReadLine();

预期输出:

-6.2845230102539098 to -6.2845230102539063

实际输出:

-6.28452301025391 to -6.28452301025391

这是DEMO FIDDLE:

https://dotnetfiddle.net/0XM3Da

这里发生了什么?

最佳答案

来自 MSDN:http://msdn.microsoft.com/en-us/library/678hzkk9.aspx

Double 的精度为 15-16 位。你已经超过了那个限制。 您应该改用 Decimal。有关详细信息,请参阅此处:Can C# store more precise data than doubles?

关于c# - 与 String 连接或转换为 String 时出现 Double 类型的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27182324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com