首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

什么情况下可能出现如下的奇怪有关问题

2013-04-02 
什么情况下可能出现如下的奇怪问题问题:1、最近在写一个程序的时候定义了一个类似如下的类[解决办法]使用浮

什么情况下可能出现如下的奇怪问题
问题:
1、最近在写一个程序的时候定义了一个类似如下的类


[解决办法]
使用浮点数据类型(single或者double)要注意
因为这些数据类型是有精度限制的,正如你上面说的1/2=0.4999999999989
不同类型精度不一样,浮点数最高精度好像是15位,也就是说只要满足精度要求他都是对的
如果不想这些造成问题,最好使用Decimal数据类型,这个尽管占用空间大点
但只要不是循环小数,绝对精确.
[解决办法]

把函数作如下修改试试:
Public Function test(ByRef temp As ClassElement, byval P As Double) As Double


        temp.Density = P
        '这个地方如果temp.Density赋值其它的数据的话,函数的返回值就会有所变化
        temp.Stress_X = -P
        temp.Stress_Y = -P
        Return temp.Stress_X + temp.Stress_Y
    End Function
或者
Public Function test(ByRef temp As ClassElement, byval P As Double,byval P1 As Double) As Double
        temp.Density = P
        '这个地方如果temp.Density赋值其它的数据的话,函数的返回值就会有所变化
        temp.Stress_X = -P1
        temp.Stress_Y = -P1
        Return temp.Stress_X + temp.Stress_Y
    End Function

热点排行