单个值的错误计算

时间:2014-09-16 01:38:19

标签: vb.net

我有一个奇怪的情况:

这是我的代码:

dim vl1,vl2,vl3 as single

vl1=26,999.99

vl2=27,000

vl3=vl1-vl2

现在我希望vl3上的值为-0.01

vl3上的值为-0.009765625

为什么?

我也尝试

Messagebox.Show(26,999.99-27,000) 

,显示的值与上面相同。

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub Main()

    Dim vl1, vl2, vl3 As Decimal

    vl1 = 26999.99D
    vl2 = 27000D

    vl3 = vl1 - vl2

End Sub

您的数据类型Single没有足够的精确度(数字)来说明27000中的0.01

修改1

然后使用转化

尝试Decimal中的操作
    Dim vl1, vl2, vl3 As Single

    vl1 = 26999.99  'Get from SQL
    vl2 = 27000     'Get from SQL

    vl3 = CSng(CDec(vl1) - CDec(vl2))
    ' Sent to SQL