草庐IT

double-double-arithmetic

全部标签

c# - 通过 cast 或 Convert.ToSingle() 将 double 转换为 float?

在C#中,我可以通过强制转换(float)或Convert.ToSingle()将double转换为float。doublex=3.141592653589793238463;floata=(float)x;floatb=Convert.ToSingle(x);a和b变得相等。这两种技术之间有什么区别吗?我应该更喜欢哪一个?为什么? 最佳答案 来自.NETreferencesource:publicstaticfloatToSingle(doublevalue){return(float)value;}因此,您的答案是它们在本质上完

c# - 通过 cast 或 Convert.ToSingle() 将 double 转换为 float?

在C#中,我可以通过强制转换(float)或Convert.ToSingle()将double转换为float。doublex=3.141592653589793238463;floata=(float)x;floatb=Convert.ToSingle(x);a和b变得相等。这两种技术之间有什么区别吗?我应该更喜欢哪一个?为什么? 最佳答案 来自.NETreferencesource:publicstaticfloatToSingle(doublevalue){return(float)value;}因此,您的答案是它们在本质上完

c# - 为什么 double.TryParse ("0.0000", out doubleValue) 返回 false ?

我正在尝试使用double.TryParse()解析字符串“0.0000”,但我不知道为什么在这个特定示例中它会返回false。当我传递类似整数的字符串时,例如“5”正确解析为值5。知道为什么会这样吗? 最佳答案 它考虑了运行时的本地化设置...也许您在.不是小数点而是,的系统上运行它...在您的具体情况下,我假设您想要一种固定的文化,而不管您使用.作为小数点运行的系统:double.TryParse("0.0000",NumberStyles.Number,CultureInfo.CreateSpecificCulture("en

c# - 为什么 double.TryParse ("0.0000", out doubleValue) 返回 false ?

我正在尝试使用double.TryParse()解析字符串“0.0000”,但我不知道为什么在这个特定示例中它会返回false。当我传递类似整数的字符串时,例如“5”正确解析为值5。知道为什么会这样吗? 最佳答案 它考虑了运行时的本地化设置...也许您在.不是小数点而是,的系统上运行它...在您的具体情况下,我假设您想要一种固定的文化,而不管您使用.作为小数点运行的系统:double.TryParse("0.0000",NumberStyles.Number,CultureInfo.CreateSpecificCulture("en

c# - 检查 Double 是否为 "NaN"的最短方法

当以Double.PositiveInfinity作为参数调用Double.IsNaN()时,结果为false。这违背了我的直觉,因为无穷大不是数字。显然,“NaN”仅以.NET中的常量形式存在,这是IEEE标准描述的还是自定义实现细节?是否有比以下方法更短的方法来检查Double是否为“NaN”:(Double.IsNaN(d)||Double.IsPositiveInfinity(d)||Double.IsNegativeInfinity(d))或(Double.IsNaN(d)||Double.IsInfinity(d)) 最佳答案

c# - 检查 Double 是否为 "NaN"的最短方法

当以Double.PositiveInfinity作为参数调用Double.IsNaN()时,结果为false。这违背了我的直觉,因为无穷大不是数字。显然,“NaN”仅以.NET中的常量形式存在,这是IEEE标准描述的还是自定义实现细节?是否有比以下方法更短的方法来检查Double是否为“NaN”:(Double.IsNaN(d)||Double.IsPositiveInfinity(d)||Double.IsNegativeInfinity(d))或(Double.IsNaN(d)||Double.IsInfinity(d)) 最佳答案

c# - Double.IsNaN 测试快 100 倍吗?

我在.NETSourceCode中找到了这个:它声称比System.Double.IsNaN快100倍。是否有理由不使用此函数而不是System.Double.IsNaN?[StructLayout(LayoutKind.Explicit)]privatestructNanUnion{[FieldOffset(0)]internaldoubleDoubleValue;[FieldOffset(0)]internalUInt64UintValue;}//ThestandardCLRdouble.IsNaN()functionisapproximately100timesslowertha

c# - Double.IsNaN 测试快 100 倍吗?

我在.NETSourceCode中找到了这个:它声称比System.Double.IsNaN快100倍。是否有理由不使用此函数而不是System.Double.IsNaN?[StructLayout(LayoutKind.Explicit)]privatestructNanUnion{[FieldOffset(0)]internaldoubleDoubleValue;[FieldOffset(0)]internalUInt64UintValue;}//ThestandardCLRdouble.IsNaN()functionisapproximately100timesslowertha

C# 下列方法或属性之间的调用不明确 : 'System.Math.Round(double, int)' and 'System. Math.Round(decimal, int)

由于以下错误,我的代码无法编译:以下方法或属性之间的调用不明确:“System.Math.Round(double,int)”和“System.Math.Round(decimal,int)”我的代码是Math.Round(newFileInfo(strFilePath).Length/1024,1)我该如何解决这个问题?谢谢 最佳答案 Math.Round(newFileInfo(strFilePath).Length/1024d,1) 关于C#下列方法或属性之间的调用不明确:'Sys

C# 下列方法或属性之间的调用不明确 : 'System.Math.Round(double, int)' and 'System. Math.Round(decimal, int)

由于以下错误,我的代码无法编译:以下方法或属性之间的调用不明确:“System.Math.Round(double,int)”和“System.Math.Round(decimal,int)”我的代码是Math.Round(newFileInfo(strFilePath).Length/1024,1)我该如何解决这个问题?谢谢 最佳答案 Math.Round(newFileInfo(strFilePath).Length/1024d,1) 关于C#下列方法或属性之间的调用不明确:'Sys