当前位置:编程学习 > VB >>

关于VB中format函数的问题点

各位大侠:
         我用VB开发了一个数值输入框控件,是从系统的TextBox继承来的,但格式化数值时出现如下的问题:
         format(9999999999999999,"###,###,###,###,###,###.00") = 10,000,000,000,000,000.00,显然格
         式化错了,将值加1了,想要的结果为:
         format(9999999999999999,"###,###,###,###,###,###.00") = 9,999,999,999,999,999.00 --------------------编程问答-------------------- format(aa,"standard")
--------------------编程问答-------------------- format(aa,"#,###.00") 
--------------------编程问答-------------------- format(aa,"#,###.00") 
--------------------编程问答-------------------- format(aa,"#,###.00") 
--------------------编程问答-------------------- 什么意思?不是很清楚你的意思。 --------------------编程问答-------------------- 将9999999999999999改为字符串
Text1.Text = Format("9999999999999999", "###,###,###,###,###,###.00") --------------------编程问答-------------------- Text1.Text = "9999999999999999"
a = Format(Text1.Text, "###,###,###,###,###,###.00") --------------------编程问答-------------------- 将9999999999999999改为字符串
Text1.Text = Format("9999999999999999", "###,###,###,###,###,###.00") --------------------编程问答-------------------- 我定义一个double类型的变量,

Dim a as double

  我把9999999999999999赋值给a的话,它自动变化成1E+16了,也是自动加1,请问是什么原因? --------------------编程问答-------------------- 声明为Variant类型。。


http://www.china-askpro.com/msg14/qa96.shtml

用VB时,Double和Decimal等一些数据类型中当数据整数部分超过16位时,也就用科学计数表示,给以后使用造成麻烦。请问如何才能使它保留原状,敬请指教,不甚感激! 

回答: 

    Double型最多精确到16位,而Decimal最多精确到28位。你可以参考下面的例子: 
     Dim n As Variant 
     Dim f As Double 
     
     n = CDec("79228162514264337593543950335") 
     f = n 
     Print n 
     Print Format(f, "Standard") 

--------------------编程问答--------------------  format处理的实际上是字符串。。。 --------------------编程问答-------------------- 都是科学计数法若的祸,躲开它就可以
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,