jjzjj

c# - 使用服务的 DDD 实体

我有一个应用程序,我正在尝试使用至少一个名义上的DDD类型的域模型来构建,并且正在努力处理某个部分。我的实体有一些业务逻辑,这些业务逻辑使用我目前在某些域服务中进行的一些财务计算和费率计算,以及我放入值对象中的一些常量值。我正在努力解决如何让实体使用领域服务内部的逻辑,或者这些服务内部的逻辑是否属于那里。这是我目前所拥有的:publicclassTicket{publicTicket(intid,ConstantRatesconstantRates,FinancialCalculationServicef,RateCalculationServicer){Id=id;ConstantR

C#转换为小数

如果有的话,它们之间有什么区别?decimald=(decimal)myDouble;decimald=newdecimal(myDouble);decimald=Convert.ToDecimal(myDouble); 最佳答案 没有区别。如果您查看源代码:十进制:publicstaticexplicitoperatordecimal(doublevalue){returnnewdecimal(value);}在转换中:publicstaticdecimalToDecimal(floatvalue){return(decimal)

c# - Json.NET 基本类型 - 使用 Decimal 而不是 Double

从JSON解析float时,如何让JSON.NET返回小数而不是double?(这是一个序列化的带有Dictionary的对象)。我已经尝试编写一个JsonConverter,但是CanConvert方法没有被调用为Double类型以尝试转换它。还有其他关于覆盖JsonTextReader的代码,但这在最新版本的Json.Net中似乎不可能。 最佳答案 在Json.NET5.0中,Newtonsoft.Json.JsonSerializerSettings类有新的属性FloatParseHandling,你可以设置这个属性值Newt

c# - 如何智能安全地将 Double 转换为 String?

尽量不要在这里重复自己(干),帮帮我。=)我有一个double代表评分/5。可能的值是:0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5.我想将其转换为不带小数位的字符串。所以值会变成:"0","05","1","15","2","25","3","35","4","45","5".我为什么要这样做?因为我正在尝试根据值动态创建链接:stringlink="http://somewhere.com/images/rating_{0}.gif";returnstring.Format(link,"15");可能的值在别处处理/验证,换句话说,我可以100%确定该值将始终是我

c# - 为什么这段代码不能证明读/写的非原子性?

阅读thisquestion,我想测试我是否可以在无法保证此类操作的原子性的类型上证明读取和写入的非原子性。privatestaticdouble_d;[STAThread]staticvoidMain(){newThread(KeepMutating).Start();KeepReading();}privatestaticvoidKeepReading(){while(true){doubledCopy=_d;//Inrelease:if(...)throw...Debug.Assert(dCopy==0D||dCopy==double.MaxValue);//Neverfails

c# - 确定图像倾斜度的有效方法

我正在尝试编写一个程序,以编程方式确定任意图像中的倾斜或旋转角度。图像具有以下属性:由浅色背景上的深色文字组成偶尔包含仅以90度角相交的水平或垂直线。在-45到45度之间倾斜。参见thisimage作为引用(倾斜2.8度)。到目前为止,我已经想出了这个策略:从左到右绘制一条路线,始终选择最近的白色像素。据推测,从左到右的路线更喜欢沿着图像倾斜的文本行之间的路径。这是我的代码:privateboolIsWhite(Colorc){returnc.GetBrightness()>=0.5||c==Color.Transparent;}privateboolIsBlack(Colorc){r

c# - 为什么模数运算符不适用于 c# 中的 double?

考虑一下:doublex,y;x=120.0;y=0.05;doublez=x%y;我试过了,预计结果是0,但结果是0.04933333。但是,x=120.0;y=0.5;doublez=x%y;确实给出了正确的结果0。这里发生了什么?我尝试了Math.IEEERemainder(double,double)但它也没有返回0。这是怎么回事?另外,顺便说一句,在C#中求余数的最合适方法是什么? 最佳答案 由于其存储格式,double无法存储输入或显示的每个值。数字的人类表示通常采用十进制格式,而double则基于双系统。在double

c# - TryCatch 与 TryParse 的优缺点

使用以下任一方法从对象中提取替身的优缺点是什么?除了个人喜好之外,我正在寻求反馈的问题还包括易于调试、性能、可维护性等。publicstaticdoubleGetDouble(objectinput,doubledefaultVal){try{returnConvert.ToDouble(input);}catch{returndefaultVal;}}publicstaticdoubleGetDouble(objectinput,doubledefaultVal){doublereturnVal;if(double.TryParse(input.ToString(),outretur

C# - 32 位和 64 位的数学运算结果不一致

考虑以下代码:doublev1=double.MaxValue;doubler=Math.Sqrt(v1*v1);r=double.MaxValue在32位机器上r=Infinityon64-bitmachine我们在32位机器上开发,因此直到客户通知后才意识到问题。为什么会出现这种不一致?如何防止这种情况发生? 最佳答案 由于FPU的工作方式,x86指令集存在棘手的浮点一致性问题。执行内部计算时使用的有效位多于可以存储在double中的有效位,当数字从FPU堆栈刷新到内存时会导致截断。这在x64JIT编译器中得到修复,它使用SSE

c# - 将 double 组转换为字节数组

如何将double[]数组转换为byte[]数组,反之亦然?classProgram{staticvoidMain(string[]args){Console.WriteLine(sizeof(double));Console.WriteLine(double.MaxValue);double[]array=newdouble[]{10.0,20.0,30.0,40.0};byte[]convertedarray=?Console.Read();}} 最佳答案 假设您希望将double值一个接一个地放置在相应的字节数组中,LINQ可