h1 = r * (((1 - u + E * g / r * p) / (E * g / r * p - u - 1)) ^ (1 / 2) - 1)
这个表达式中所有的参数都是double型,请问,我在定义每一个参数的时候如何定义他们的有效位数,整数位和小数位呢?
而且,这个结果的位数如何控制?谢谢。

解决方案 »

  1.   

    将结果格式一下。或转换成双精型。Format函数根据格式表达式中的指令来格式化参数语法
    Format(expression[,format[,firstdayofweek[,firstweekofyear]]])说明
    其中expression是必需的任何有效的表达式.format是可选的有效的命名表达式或用户自定义格式表达式.firstdayofweek是可选的常数.firstweekofyear是可选的常数.
    firstdayofweek参数的设置如下所示:
    vbUseSystem:使用NLSAPI设置
    vbSunday:星期日(缺省)
    vbMonday:星期一
    vbTuesday:星期二
    vbWednesday:星期三
    vbThursday:星期四
    vbFriday:星期五
    vbSaturday:星期六
    firstweekofyear参数的设置如下所示:
    vbUseSystem:使用NLSAPI设置
    vbFirstJan:从包含一月一日的那一周开始(缺省)
    vbFirstFourDays:从本年第一周开始,而此周至少有四天在本年中
    vbFirstFullWeek:从本年第一周开始,而此周完全在本年中
    对于数字,该函数使用预先定义的命名数值格式或创建用户自定义数值格式.
    对于日期和时间,该函数使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式
    对于日期和时间序数,该函数使用日期和时间格式或数值格式
    对于字符串,该函数创建自定义的字符串格式例
    Dim VarTime,VarDate,VarStr
    VarTime=#18:27:25#
    VarDate=#January7,2002#
    '以系统设置的长时间格式返回当前系统时间.
    VarStr=Format(Time,"LongTime")
    '以系统设置的长日期格式返回当前系统日期.
    VarStr=Format(Date,"LongDate")
    VarStr=Format(VarTime,"h:m:s")  '返回"18:27:25"
    VarStr=Format(VarTime,"hh:mm:ssAMPM") '返回"06:27:25PM"
    '如果没有指定格式,则返回字符串
    VarStr=Format(27)'返回"27"
    '以下为用户自定义的格式
    VarStr=Format(1234.5,"##,##0.00") '返回"1,234.50"
    VarStr=Format(334.9,"###0.00") '返回"334.90"
    VarStr=Format("VB","<") '返回"vb"
    VarStr=Format("vb",">") '返回"VB"
      

  2.   

    那楼上的同志,我尝试了
    h1 = r * (((1 - u + E * g / r * p) / (E * g / r * p - u - 1)) ^ (1 / 2) - 1)
    中每个参数为double,每个参数都为x.xxx(1.254)的形式,得出的结果h1却只能精确到x.x(1.5)我昨天式了好几次都只能这样。是不是在每个参数取值得时候要用到format(val(txt1.text),#0.000)
    val(txt1.text)是从文本匡中读入填写的小数,计算出来的结果才能够也是x.xxx的形式呢?希望进一步解答,,,谢谢