我的代码的一部分计算两个数字的乘积,结果存储到声明为十进制的变量,问题是当我尝试将结果显示到文本框时它不显示结果的整个值
Dim value1 As Integer = 1576000
Dim value2 As double = 7620.22
Dim result As Decimal
result = value1 / value2 ''result from a calculator is 206.81817585319059029....
textBox1.text = result.ToString ''textbox displays 206.818175853191
从我搜索过的十进制数据类型最多可以保存28-29位小数,但是当显示结果时,它会转换为double(数据类型)。
另外,result = value1 / value2
是存储在内存中的结果的整个值吗?
答案 0 :(得分:2)
您正在计算double值并将其值和精度分配给Decimal变量。
如果您的代码是使用Option Strict On
设置的,那么IDE会为您提供正在发生的事情的线索。使用Option Strict On
,此声明:
result = value1 / value2
会给出错误:
Option Strict On禁止从“Double”到“Decimal”的隐式转换
双打有15位有效数字。如果计算206.818175853191
中的位数,您将看到有15位数(小数点不计)。
要获得所需结果,请使用十进制值执行除法。
Dim result2 As Decimal = CDec(value1) / CDec(value2)