草庐IT

c# - 四舍五入到两位小数

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:c#-HowdoIroundadecimalvalueto2decimalplaces(foroutputonapage)将double四舍五入到小数点后两位并固定在小数点后两位的最佳方法是什么?示例:2.346->2.35,2->2.00我希望避免这样的事情,我必须将double转换为字符串,然后再转换回double,这似乎是一种糟糕的方法。

C#:获取列表中所有项目的任意属性的最大值和最小值

我有一个专门的列表,其中包含IThing类型的项目:publicclassThingList:IList{...}publicinterfaceIThing{DecimalWeight{get;set;}DecimalVelocity{get;set;}DecimalDistance{get;set;}DecimalAge{get;set;}DecimalAnotherValue{get;set;}[...evenmorepropertiesandmethods...]}有时我需要知道列表中所有事物的某个属性的最大值或最小值。因为“告诉不要问”,我们让List自己搞定:publiccl

C#:获取列表中所有项目的任意属性的最大值和最小值

我有一个专门的列表,其中包含IThing类型的项目:publicclassThingList:IList{...}publicinterfaceIThing{DecimalWeight{get;set;}DecimalVelocity{get;set;}DecimalDistance{get;set;}DecimalAge{get;set;}DecimalAnotherValue{get;set;}[...evenmorepropertiesandmethods...]}有时我需要知道列表中所有事物的某个属性的最大值或最小值。因为“告诉不要问”,我们让List自己搞定:publiccl

c# - MidpointRounding 的 Decimal.Round 默认设置

这个问题在这里已经有了答案:Whydoes.NETusebanker'sroundingasdefault?(5个答案)关闭9年前。以下适用:varrounded=Decimal.Round(7.635m,2);//rounded:7.63对我来说,这是错误的和意外的行为。我假设rounded的值为7.64。为了实现这一点,我可以做到:varrounded=Decimal.Round(7.635m,2,MidpointRounding.AwayFromZero);//rounded:7.64这怎么可能不是Decimal.Round的默认行为?这有什么好的理由吗?

c# - MidpointRounding 的 Decimal.Round 默认设置

这个问题在这里已经有了答案:Whydoes.NETusebanker'sroundingasdefault?(5个答案)关闭9年前。以下适用:varrounded=Decimal.Round(7.635m,2);//rounded:7.63对我来说,这是错误的和意外的行为。我假设rounded的值为7.64。为了实现这一点,我可以做到:varrounded=Decimal.Round(7.635m,2,MidpointRounding.AwayFromZero);//rounded:7.64这怎么可能不是Decimal.Round的默认行为?这有什么好的理由吗?

c# - 为什么 "decimal.TryParse()"在下面的代码中对于输入字符串 "-1"总是返回 0?

下面的代码应该返回-1十进制值,但它返回的是0。我做错了什么吗?decimalvalidity=-1;validityStr="-1";decimal.TryParse(validityStr,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture,outvalidity);预期输出:-1实际输出:0 最佳答案 你忘了告诉TryParse前导标志是OKdecimalvalidity=-1;varvalidityStr="-1";decimal.TryParse(vali

c# - 为什么 "decimal.TryParse()"在下面的代码中对于输入字符串 "-1"总是返回 0?

下面的代码应该返回-1十进制值,但它返回的是0。我做错了什么吗?decimalvalidity=-1;validityStr="-1";decimal.TryParse(validityStr,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture,outvalidity);预期输出:-1实际输出:0 最佳答案 你忘了告诉TryParse前导标志是OKdecimalvalidity=-1;varvalidityStr="-1";decimal.TryParse(vali

c# - 为什么十进制类不使用剩余的 26 位?

十进制类使用96位作为整数部分,1位作为符号,5位作为比例因子。26位未使用,最大值为7.9e28,因为最大指数为28。使用其他26位,精度会更高。选择此实现的原因是什么? 最佳答案 您可能会发现这篇文章很有用:http://csharpindepth.com/articles/general/decimal.aspx128是4x32。大多数CPU都有32(或64)位寄存器和ALU,所以任何能被32整除的东西都更容易操作和存储等。 关于c#-为什么十进制类不使用剩余的26位?,我们在St

c# - 为什么十进制类不使用剩余的 26 位?

十进制类使用96位作为整数部分,1位作为符号,5位作为比例因子。26位未使用,最大值为7.9e28,因为最大指数为28。使用其他26位,精度会更高。选择此实现的原因是什么? 最佳答案 您可能会发现这篇文章很有用:http://csharpindepth.com/articles/general/decimal.aspx128是4x32。大多数CPU都有32(或64)位寄存器和ALU,所以任何能被32整除的东西都更容易操作和存储等。 关于c#-为什么十进制类不使用剩余的26位?,我们在St

c# - 为什么使用 Decimal.Multiply 与运算符乘法?

decimalresult=100*200;对比decimalresult=Decimal.Multiply(100,200); 最佳答案 使用Decimal.Multiply将强制乘法采用decimal类型的输入,而不是正在使用并转换为decimal.Decimal.Multiply(decimald1,decimald2)并将强制输出decimal类型。*你可以做什么:decimalresult=yourDecimal*yourInt;这允许您在某些情况下混合和匹配类型,它会为您处理所有这些,但不能保证类型是十进制,具体取决于右