草庐IT

double-elimination

全部标签

C# 如何在不四舍五入的情况下将 double 格式化为小数点后一位

我需要将double值格式化为小数点后一位而不四舍五入。doublevalue=3.984568438706stringresult="";我试过的是:1)result=value.ToString("##.##",System.Globalization.CultureInfo.InvariantCulture)+"%";//returns3.98%2)result=value.ToString("##.#",System.Globalization.CultureInfo.InvariantCulture)+"%";//returns4%3)result=value.ToStrin

c# - 将 double 转换为字符串

我有三个double变量a、b和ca=0.000006b=6c=a/b;所以C应该是0.000001我想在文本框中显示这个值,所以我写了textbox.text=c.tostring();但它给出的结果是“1E-06”..任何人都可以帮助我如何在文本框中输入正确的值?谢谢 最佳答案 a=0.000006;b=6;c=a/b;textbox.Text=c.ToString("0.000000");如您所愿:textbox.Text=c.ToString("0.######");如果要显示6位小数,这将只显示小数点后6位。

c# - 为什么没有接受 Doubles 作为参数的 Interlocked.Add 重载?

我非常欣赏Threading.Interlocked类提供的原子性;不过,我不明白为什么Add函数只提供两个重载:一个用于Integers,另一个用于Longs。为什么不是Doubles或任何其他数字类型?显然,更改Double的预期方法是CompareExchange;我猜这是因为修改Double比修改Integer更复杂。我仍然不清楚为什么,如果CompareExchange和Add都可以接受整数,它们不能同时接受double值。 最佳答案 其他人已经解决了“为什么?”。但是,使用CompareExchange原语可以很容易地滚

c# - 将 double 四舍五入为整数

我有一个来自int/int的数字(“double”)(例如10/3)。通过Excess进行逼近并将其转换为C#上的int的最佳方法是什么? 最佳答案 你问的是System.Math.Ceiling?Math.Ceiling(0.2)==1Math.Ceiling(0.8)==1Math.Ceiling(2.6)==3Math.Ceiling(-1.4)==-1 关于c#-将double四舍五入为整数,我们在StackOverflow上找到一个类似的问题: ht

c# - 为什么 math.Ceiling(double a) 不直接返回 int?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whydoesn'tMath.Round/Floor/Ceilingreturnlongorint?msdn定义了这个方法:返回大于或等于指定doublefloat的最小整数。但实际上是publicstaticdoubleCeiling(doublea)为什么不直接返回int呢?微软是怎么想的?

c# - 为什么将 double.epsilon 添加到一个值会产生相同的值,完全相等?

我有一个单元测试,测试边界:[TestMethod][ExpectedException(typeof(ArgumentOutOfRangeException))]publicvoidCreateExtent_InvalidTop_ShouldThrowArgumentOutOfRangeException(){varinvalidTop=90.0+Double.Epsilon;newExtent(invalidTop,0.0,0.0,0.0);}publicstaticreadonlydoubleMAX_LAT=90.0;publicExtent(doubletop,doubleri

c# - 将 double 转换为 int,它是四舍五入还是只是去掉数字?

用double进行一些计算,然后需要将其转换为int。所以我有一个快速的问题,当将doublesay7.5转换为int时,它将返回7。这是四舍五入的产物还是只是去掉小数点后的任何内容?如果它是四舍五入的产物,它是否聪明,即0.1到0.5向下舍入,0.6到0.9向上舍入?干杯 最佳答案 不四舍五入,只返回小数点前的整数部分。引用(感谢Rawling)ExplicitNumericConversionsTable:Whenyouconvertadoubleorfloatvaluetoanintegraltype,thisvalueisr

c# - 数学解释为什么 Decimal 到 Double 的转换被破坏并且 Decimal.GetHashCode 分隔相等的实例

我不确定这种陈述StackOverflow问题的非标准方式是好是坏,但这里是:什么是最好的(数学或其他技术)解释代码的原因:staticvoidMain(){decimal[]arr={42m,42.0m,42.00m,42.000m,42.0000m,42.00000m,42.000000m,42.0000000m,42.00000000m,42.000000000m,42.0000000000m,42.00000000000m,42.000000000000m,42.0000000000000m,42.00000000000000m,42.000000000000000m,42.0

c# - 将 double 转换为 float 是否总是返回相同的值?

将double转换为float总是会产生相同的结果,还是会有一些“舍入差异”?比如x在floatx=(float)0.123456789d;总是相同的值?将float转换为double,然后将其转换回float会怎么样。(float)(双)someFloat?最感兴趣的是C#中的结果,但如果您知道它在其他语言上的工作原理,请随时分享。 最佳答案 结果不应依赖于语言,除非语言偏离IEEE规范。所有float都可以精确地表示为double,因此从float到double再到float的往返应该产生与您开始时相同的值。类似地,将任何dou

c# - Double.MaxValue 为整数是否为负数?

为什么Double.MaxValue转换为整数类型会产生负值,即该类型的最小值?doublemaxDouble=double.MaxValue;//1.7976931348623157E+308longmaxDoubleLong=(long)maxDouble;//-9223372036854775808如果它太大或在运行时出现OverflowException,或者如果我使用unchecked转换可能不会引发异常,我会理解编译器错误,但是结果变得不确定和不正确(负)。同样奇怪的是,这个值是long.MinValue:boolsameAsLongMin=maxDoubleLong==l