关于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 , 基础类