我有一个值:“2.54334881002458E-37”,当我使用双倍时,我一直收到“溢出”异常。
我应该用什么来做这项工作?
谢谢
代码段:
Dim curries, act, cat As Double
For Each dataRow As DataRow In dt.Rows
curries = dataRow("Activity")
当我尝试将活动分配给咖喱时收到错误。
但“activity”是数据库中的一个字符串....
答案 0 :(得分:2)
Double已经是64位的浮点数。 你可以在这个溢出的地方发布代码吗? 十进制可能值得一试,但您必须发布代码才能理解您遇到的问题。
根据您在帖子中的编辑,为什么要在数据库中将数字存储为字符串?这是肯定的不,不......除非你没有进行任何类型的算术运算,否则你可以将它们存储为varchar / string。
给我们一个数据样本的示例...我认为您的问题源于不将字符串转换为小数,如果activity是一个字符串,则使用DirectCast
或CType
转换它(施展价值):
curries = CType(datarow("Activity"), Double)
答案 1 :(得分:2)
更改您的计量单位,这样您就不会在10 ^ -37的任何时间工作。这个问题只是尖叫“我不是在适当的领域解决这个问题。”
答案 2 :(得分:0)
根据MSDN,Double对您的号码应该没有任何问题:
范围:
-1.79769313486231570E + 308到-4.94065645841246544E-324†负值; 4.94065645841246544E-324至1.79769313486231570E + 308†正值
答案 3 :(得分:0)