小数点位数 问题。。。。。。。。知道的朋友请进来看看。。。 ( 积分: 0 )

  • 主题发起人 主题发起人 wutaoqing
  • 开始时间 开始时间
W

wutaoqing

Unregistered / Unconfirmed
GUEST, unregistred user!
如何 保留小数点后面的位数
Eg:有一数据 a:=123.12346
有什么函数 可以控制后面保留几位小数????
如果我想后面保留10小数 得到a:=123.1234600000
-----------------------------------------------------
我有一个数据 a;=132456545.6545487
设置啊:a;double;
最后得到a的值 只有132456545.65
有什么办法可以使得a的值后面的小数全部都有???
 
FDataX里面有5个数据,数据是188.798,188.805,188.794,188.802,188.808
var
ZEX3 :double;
for i:=0 to 5-1 do
ZEX3 := ZEX3 + (FDataX*FDataX*FDataX);

最后得出的结果ZEX3只等于33650043.99

其实ZEX3 的数据是33650043.989571621
 
用 extended 试试
 
FloatToStrF(X, ffFixed, 15, 2);
 
extended也不行 没有取出全部的值 只取得了前面14位数数字。
有什么办法可以取出等多位数的值?
 
FloatToStrF(X, ffFixed, 15, 2);

X表示什么???我不需要转化为字符的???我还要用到
ZEX3:=33650043.989571621 这个数字进行程序计算的
 
用real类型试试
 
real类型也不行 没有保留到那么多位数
 
format('%8.2f',[a])
 
你做什么处理了?得到只有两位的
可以用format
 
format 只是得出了 字符型的
我想要得到数据型的
得到的数据还要参加计算的。
 
Type Range Significant digits Size in bytes
Real48 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20 10

Generic real types
Type Range Significant digits Size in bytes
Real 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8

如果 Extended 精度还不够,就没办法了
 
format 得到字符型不行吗?得到后再进行转换,照样可以参加运算的呀.
 
问题1 用format('%x.yf',float_1),的形式,要保留尾部0,只有字符串类型可以(string,char),别妄想double 也保留
问题2 可能你说的是保存到dbedit,edit,editmask里面吧,设置displayformat
或者editmask 就可以了

基本问题
 
楼主,既然只是要数值的,后面加那么多零干什么
 
接受答案了.
 
后退
顶部