gpt4 book ai didi

c# - 小数点四舍五入问题

转载 作者:太空狗 更新时间:2023-10-29 23:12:03 25 4
gpt4 key购买 nike

鉴于 Decimal.MaxValue = 79228162514264337593543950335m

为什么下一行在本地窗口中给我的是 7922816251426433759354395034M 而不是预期的 7922816251426433759354395033.5m?

十进制目标=Decimal.MaxValue/10m;

最佳答案

实际上,我怀疑这是一个编译器错误。

这里有一个简短但完整的程序来说明我为什么这么认为:

using System;

class Test
{
static void Main()
{
decimal constant = decimal.MaxValue / 10m;
decimal calculated = decimal.MaxValue;
calculated /= 10m;

Console.WriteLine (constant);
Console.WriteLine (calculated);
}
}

输出:

7922816251426433759354395034
7922816251426433759354395033.5

我将深入研究规范以查看提供了哪些保证。

编辑:在规范中,第 7.18 节声明:

The compile-time evaluation of constant expressions uses the same rules as run-time evaluation of non-constant expressions, except that where run-time evaluation would have thrown an exception, compile-time evaluation causes a compile-time error to occur.

这里显然不是这种情况。嗯。

编辑:我已经提交了 a bug to Microsoft Connect .我们将看看它会发生什么。

关于c# - 小数点四舍五入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/341848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com