jjzjj

c# - 将 long 转换为 double 的精度损失有多大?

我在stackoverflow上的不同帖子和C#文档中读到,将long(或任何其他表示数字的数据类型)转换为double会失去精度。由于float的表示,这一点非常明显。我的问题是,如果将较大的数字转换为double,精度损失有多大?我是否必须期望差异大于+/-X?我想知道这一点的原因是我必须处理一个long的连续计数器。这个值被我的应用程序读取为string,需要转换并且必须除以例如10或其他一些小数字,然后进一步处理。decimal是否更适合这项任务? 最佳答案 convertinglong(oranyotherdatatype

c# - 在运行内部代码之前,在锁之前和锁内设置 "double check"是否可以?

在处理线程安全时,我发现自己总是在执行锁block中的代码之前“仔细检查”,我想知道自己是否做对了。考虑以下三种做同样事情的方法:示例1:privatestaticSomeCollectionMyCollection;privatestaticObjectlocker;privatevoidDoSomething(stringkey){if(MyCollection[key]==null){lock(locker){MyCollection[key]=DoSomethingExpensive();}}DoSomethingWithResult(MyCollection[key]);}示

c# - 计算点击点的角度

我正在制作一个WPF控件(旋钮)。我正在尝试根据圆内的鼠标单击位置计算出计算角度(0到360)的数学方法。例如,如果我单击图像上X、Y所在的位置,我将得到一个点X、Y。我也有中心点,但不知道如何获得角度。我的代码如下:internaldoubleGetAngleFromPoint(Pointpoint,PointcenterPoint){doubledy=(point.Y-centerPoint.Y);doubledx=(point.X-centerPoint.X);doubletheta=Math.Atan2(dy,dx);doubleangle=(theta*180)/Math.P

c# - 如何在 Windows Phone 8 中获取捕获图像或存储图像的地理标记详细信息

我想从图像中获取有关地理位置的信息,如下图所示voidcam_Completed(objectsender,PhotoResulte){if(e.TaskResult==TaskResult.OK){ImagecameraImage=newImage();BitmapImagebImage=newBitmapImage();bImage.SetSource(e.ChosenPhoto);cameraImage.Source=bImage;e.ChosenPhoto.Position=0;ExifReaderreader=newExifReader(e.ChosenPhoto);doub

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

我在VS2015C#交互中运行了以下代码片段,得到了一些非常奇怪的行为。>doubledivide(doublea,doubleb).{.try.{.returna/b;.}.catch(DivideByZeroExceptionexception).{.thrownewArgumentException("Argumentbmustbenonzero.",exception);.}.}>divide(3,0)Infinity>3/0(1,1):errorCS0020:Divisionbyconstantzero>varb=0;>3/bAttemptedtodividebyzero.>

c# - 计算给定距离、方位、起点的端点

我正在尝试根据起点纬度/经度、方位角和距离找到目的地点。下面这个网站的计算器给出了我想要的结果。http://www.movable-type.co.uk/scripts/latlong.html当我尝试通过代码实现相同的功能时,我没有得到正确的结果。下面是我的代码-privateGLatLngpointRadialDistance(doublelat1,doublelon1,doubleradianBearing,doubleradialDistance){doublerEarth=6371.01;lat1=DegreeToRadian(lat1);lon1=DegreeToRadi

c# - 如何将 double 格式化为字符串并仅在必要时显示小数位?

我有这样的代码:lblFranshizShowInvwNoskhehEdit.Text=string.Format("{0:n}",(double)(int.Parse(drDarman["FranshizDarsad"].ToString())*Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100);但是{0:n0}字符串格式强制标签的文本没有小数位,而{0:n}字符串格式强制标签的文本有2个小数位数字(默认)。在我的场景中,我只需要必要时的小数位/不四舍五入/我该怎么做? 最佳答案

C# volatile double

因为只有引用类型和一些基元(包括float,但不包括double,我不确定原因,我很高兴听到原因)可以声明为volatile,如果我在类中包装double然后将其声明为volatile(如下所示),double属性是否会像任何其他volatile一样是“读写”线程安全的,还是我仍然应该考虑锁定?publicclassMyThreadedClass{volatileVolatileDoublevoldub;}publicclassVolatileDouble{publicdoubleDouble{get;set;}} 最佳答案 dou

c# - 在C#中计算不规则多边形的面积

我已经设法写了一个“傻瓜”如何在C#中计算不规则多边形的面积,但我需要它对于任何数量的顶点都是动态的。有人可以帮忙吗?类:publicclassVertex{privateint_vertexIdx;privatedouble_coordX;privatedouble_coordY;privatedouble_coordZ;publicVertex(){}publicVertex(intvertexIdx,doublecoordX,doublecoordY,doublecoordZ){_vertexIdx=vertexIdx;_coordX=coordX;_coordY=coordY;

C#, DETERMINE *if* a double 可以毫无损失地变成 int

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howtodetermineifadecimal/doubleisaninteger?我有一个独特的情况,所有数字都必须在我的数据库中保存为double数据类型,但只有在某些情况下,超出整数级别的精度才有值(value)。起初,我尝试只使用int,然后在这些独特的分数出现时抽象到一个新表,但在这样做了几周之后,我现在可以看到它过于愚蠢并且浪费我的时间。我知道我可以将double转换为int。那很容易。我知道怎么翻译过来。我不知道如何测试以将其翻译过来。我基本上希望想出一个简短、简单的方式来表达Isthisnum