小编use*_*360的帖子

C#十进制乘法奇怪的行为

在C#中乘以十进制值时,我注意到一种奇怪的行为.考虑以下乘法运算:

1.1111111111111111111111111111m * 1m = 1.1111111111111111111111111111 // OK
1.1111111111111111111111111111m * 2m = 2.2222222222222222222222222222 // OK
1.1111111111111111111111111111m * 3m = 3.3333333333333333333333333333 // OK
1.1111111111111111111111111111m * 4m = 4.4444444444444444444444444444 // OK
1.1111111111111111111111111111m * 5m = 5.5555555555555555555555555555 // OK
1.1111111111111111111111111111m * 6m = 6.6666666666666666666666666666 // OK
1.1111111111111111111111111111m * 7m = 7.7777777777777777777777777777 // OK
1.1111111111111111111111111111m * 8m = 8.888888888888888888888888889  // Why not 8.8888888888888888888888888888 ?
1.1111111111111111111111111111m * 9m = 10.000000000000000000000000000 // Why not 9.9999999999999999999999999999 ?
Run Code Online (Sandbox Code Playgroud)

我无法理解的是上述最后两个案例.怎么可能?

c# decimal multiplication

34
推荐指数
1
解决办法
1997
查看次数

C#如何在给定时间运行代码?

简而言之,

我早上开始运行我的C#程序,程序应该在下午5:45向用户显示一条消息.我怎么能在C#中做到这一点?

编辑:我问过这个问题因为我认为使用计时器不是最好的解决方案(定期比较当前时间和运行任务所需的时间):

private void timerDoWork_Tick(object sender, EventArgs e)
{
    if (DateTime.Now >= _timeToDoWork)
    {

        MessageBox.Show("Time to go home!");
        timerDoWork.Enabled = false;

    }
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

decimal ×1

multiplication ×1