Rus*_*hyo 1 c# double boolean decimal
Double dblValue = 0.0001;
Boolean a = (dblValue >= (1 / 1000));
Boolean b = (dblValue >= 0.001);
Console.WriteLine("dblValue >= (1 / 1000) is " + a);
Console.WriteLine("dblValue >= 0.001 is " + b);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
上面的C#代码将'a'评估为true,将'b'评估为false.在VB.NET中,等效代码将'a'评估为false,将'b'评估为false.为什么'a'会评价为真?
我在这里缺少一个隐式转换 - 为什么它不影响VB.NET(严格)?
1和1000都是整数,因此结果将是一个整数(在这种情况下为0).你需要强制使用双打来完成数学运算.
Boolean b = (dblValue >= ((double) 1/(double) 1000));
Run Code Online (Sandbox Code Playgroud)
要么
Boolean b = (dblValue >= (1d / 1000d));
Run Code Online (Sandbox Code Playgroud)
会给你你期望的结果.
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |