草庐IT

c# - 将 nullable double 设置为 null 有什么问题?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:Whycan'tIsetanullableinttonullinaternaryifstatement?Nullabletypesandtheternaryoperator.Whywon'tthiswork?下面有什么问题publicdouble?Progress{get;set;}Progress=null;//worksProgress=1;//worksProgress=(1==2)?0.0:null;//failsTypeofconditionalexpressioncannotbedetermin

c# - 将具有指数表示法的数字从字符串转换为 double 或十进制

有没有一种快速的方法可以将指数表示法的数字(例如:“0.5e10”或“-5e20”)转换为十进制或double?更新:我找到了ParseaNumberfromExponentialNotation但这些示例对我不起作用,除非我指定了一种文化。解决方法:doubletest=double.Parse("1.50E-15",CultureInfo.InvariantCulture); 最佳答案 如果您的文化使用.作为小数分隔符,则只需double.Parse("1.50E-15")即可。如果您的文化使用其他东西(例如、),或者您想确保您

c# - 如何用半径和起止角画圆弧

如果我的Canvas元素的DataContext中有以下四个属性PointCenterdoubleRadiusdoubleStartAngledoubleEndAngle我可以在没有任何额外代码的情况下绘制弧线吗? 最佳答案 事实证明,提供自定义组件是最好的解决方案。我在我的代码中这样使用它SmallAngle当true时,将呈现点之间的小角度,而不考虑StartAngle和EndAngle的顺序。当SmallAngle为false时,弧逆时针呈现。实现是usingSystem;usingSystem.Collections.Gen

c# - 转换十进制?加倍?

我想知道从一种可空类型转换为另一种“兼容”可空类型的最佳方式(从更安全和简洁的意义上说)是什么。具体来说,从十进制转换?加倍?可以使用:publicdouble?ConvertToNullableDouble(decimal?source){returnsource.HasValue?Convert.ToDouble(source):(double?)null;}有没有更好的方法来做到这一点?也许利用标准转换? 最佳答案 为胜利而生!刚刚在VS2012和VS2010中对此进行了测试:decimal?numberDecimal=new

c# - 如何拼接很少重叠的图像?

我正在尝试使用重叠很少的图像创建全景图,但我知道相机的角度,所以我确切知道有多少重叠,我知道图像的顺序所以我知道每个图像属于哪里全景。作为第一步,我只是简单地将图像连接在一起,但结果还不够好。有没有办法将位图裁剪成梯形以消除(大部分)重叠,然后在连接之前将位图拉伸(stretch)回矩形?我知道这会在拉伸(stretch)过程中产生变形,并且梯形只是近似于位图实际需要裁剪的方式,但我希望这已经足够好了。 最佳答案 您正在寻找的技术称为ImageRegistration使用仿射变换。这可以在软件中通过计算将图像B映射到图像A的矩阵变换

c# - 在C#中将350M数字快速加载到double[]数组中

我将在二进制文件中存储350M预先计算的double,并在我的dll启动时将它们加载到内存中。是否有任何内置方法可以并行加载它,或者我应该自己将数据拆分为多个文件并自己处理多个线程?回答评论:我将在足够强大的机器上运行这个dll,很可能只在64位机器上运行。因为对我的号码的所有访问都将通过属性进行,所以我可以将我的号码存储在多个数组中。[更新]谢谢大家的回答!我期待着在不同的盒子上进行大量的基准测试。关于需求:我想加速一个非常慢的计算,所以我打算预计算一个网格,将它加载到内存中,然后进行插值。 最佳答案 好吧,我做了一个小测试,我肯

c# - 格式化具有最小小数位数的 double 类型

我需要格式化double类型,使其具有最少两位小数但不限制最大小数位数:5->"5.00"5.5->"5.50"5.55->"5.55"5.555->"5.555"5.5555->"5.5555"我怎样才能实现它? 最佳答案 您可以对非可选数字使用0格式说明符,对可选数字使用#:n.ToString("0.00###")此示例最多提供五位小数,您可以根据需要添加更多#位置。 关于c#-格式化具有最小小数位数的double类型,我们在StackOverflow上找到一个类似的问题:

c# - 计算以公里为单位的两个地理点的距离 c#

我想计算两个地理点的距离。这些点以经度和纬度给出。坐标是:点1:36.578581,-118.291994点2:36.23998,-116.83171这里是比较结果的网站:http://www.movable-type.co.uk/scripts/latlong.html这里是我从这个链接使用的代码:CalculatedistancebetweentwopointsingooglemapsV3constdoublePIx=Math.PI;constdoubleRADIO=6378.16;//////ConvertdegreestoRadians//////Degrees///Theeq

c# - 从 double 转换为 int 的最佳(最安全)方法

我很好奇将double转换为整数的最佳方法。运行时安全是我在这里的主要关注点(它不一定是最快的方法,但这是我的次要关注点)。我在下面留下了一些我可以想出的选项。任何人都可以权衡哪种是最佳实践吗?有没有我没有列出的更好的方法来完成这个?doublefoo=1;intbar;//Option1boolparsed=Int32.TryParse(foo.ToString(),outbar);if(parsed){//...}//Option2bar=Convert.ToInt32(foo);//Option3if(fooInt32.MinValue){bar=(Int32)foo;}

c# - 在 C# 中截断 double 值的位数

如何在C#中截断double值的前导数字,我试过Math.Round(doublevalue,2)但没有给出要求的结果。而且我在数学课上没有找到任何其他方法。例如,我的值为12.123456789,我只需要12.12。 最佳答案 编辑:有人指出,这些方法舍入值而不是截断。很难真正截断double值,因为它实际上不是在正确的基数中......但截断decimal值更可行。您应该使用适当的格式字符串,custom或standard,例如stringx=d.ToString("0.00");或stringx=d.ToString("F2"