您的位置:程序门 -> .net技术 -> c#



怎样取得float的有效小数位数?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎样取得float的有效小数位数?[已结贴,结贴人:leomaya]
发表于:2007-01-23 10:26:04 楼主
例如:
5145611556.000000000000000000,   想得到:5145611556
5145611556.000000000040200000,   想得到:5145611556.0000000000402

大家有什么办法,   谢谢
发表于:2007-01-23 10:57:321楼 得分:5
没有这样高的精度
发表于:2007-01-23 11:02:172楼 得分:2
数字.tostring().trim( '0 ');
发表于:2007-01-23 11:03:173楼 得分:10
float   s   =   0;
                                        s.tostring().trimend( '0 ');
发表于:2007-01-23 11:09:014楼 得分:2
string   f   =   "5145611556.00000000000000000 ";
string   str   =   f.tostring().trim( '0 ').trim( '. ');
发表于:2007-01-23 11:19:565楼 得分:0
wuyazhe(wyz&xyl)解决了问题。。。
发表于:2007-01-23 11:24:006楼 得分:0
好像真的达不到那个精度啊
发表于:2007-01-23 11:33:107楼 得分:20
float的tostring方法是没有办法得到这么精确的,可以用decimal来实现:
decimal   d   =   5145611556.000000000040200000m;
iformatprovider   ip   =   numberformatinfo.currentinfo;

string   str   =   d.tostring(ip);
system.console.writeline(str.trim(new   char[]{ '0 '}));
发表于:2007-01-23 11:38:368楼 得分:0
float是没有办法办法到到如此精确的,它只有7位,
而decimal则是28   到   29   位有效位
发表于:2007-01-23 11:38:389楼 得分:0
浮点数存在舍入误差,改用定点数可以解决问题。楼上正解。
发表于:2007-01-23 11:43:1810楼 得分:0
float精度只有7位
发表于:2007-01-23 11:44:2011楼 得分:10
double都没有那么高的精度,唯一办法是用decimal
发表于:2007-01-23 11:46:2212楼 得分:0
string   s   =   5145611556.000000000040200000m.tostring().trim( '0 ');
发表于:2007-01-23 12:08:2813楼 得分:1
2.0100.tostring().trim( '0 ')可以
但是你的精度没有吧?
发表于:2007-01-23 14:00:4614楼 得分:0
decimal   d   =   5145611556.000000000040200000m;      

  就可以了
发表于:2007-02-27 19:26:0415楼 得分:0
value.tostring().trimend( "0 ").trimend( ". ")


快速检索

最新资讯
热门点击