【发布时间】:2011-12-02 19:21:45
【问题描述】:
我偶然发现了 CInt 的问题,并将双精度数转换为整数。
问题如下:
CInt(10.5) 'Result is 10
CInt(10.51) 'Result it 11, but I expected 10...
我习惯了 (int) 10.51 为 10 的 C# 样式转换。
正如关于Integer.Parse vs CInt 的问题中所指出的,结果只是以某种方式四舍五入。
但是,我只需要获取整数部分并丢弃小数部分。如何在 VB.NET 中实现这种类型的转换?经过一番研究,我发现我可以使用 Fix() 函数来解决问题,但它是最佳选择吗?
【问题讨论】:
-
更糟糕的是:cint(10.5) = 10 但 cint(11.5) = 12。如果整数部分是偶数,则 0.50000000 向下舍入,奇数则向上!
标签: .net vb.net c#-to-vb.net rounding