求教一个C# double小数点位数保留问题

xulonghua1988219 2012-06-05 09:37:18
根据已有的double类型的小数点的位数,保留计算后的到double类型的数的小数位数。

问题,怎么得到一个已有double类型的小数位数?

...全文
1104 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

C# code
double x = 200.00000;
int part_num_count = Regex.Match(x.ToString(), @"(?<=\.)\d+?(?=0*$)").Value.ToCharArray().Count();
string temp = x.ToString("F"+part_nu……
[/Quote]
int part_num_count = Regex.Match(x.ToString(), @"(?<=\.)\d+?(?=0*$)").Value.ToCharArray().Count(); vs2010显示,array没有count方法。
我改成Regex.Match(x.ToString(), @"(?<=\.)\d+?(?=0*$)").Value.ToCharArray().Getlength(1);编译能通过,运行时,出现数组越界异常。 出现越界的数是0.8160
  • 打赏
  • 举报
回复
 double x = 200.00000;
int part_num_count = Regex.Match(x.ToString(), @"(?<=\.)\d+?(?=0*$)").Value.ToCharArray().Count();
string temp = x.ToString("F"+part_num_count);//200
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

引用 2 楼 的回复:

不太懂你提的问题,你是想说如何判断一个double 数据类型 小数点的位数吗?我有一个比较笨的方法 就是把double 数据看成一个字符串,然后截取"."后的数据,判断其长度


如果是 double d = 1.000;
string strD = d.ToString();
那么 strD 存的值为 “1”

……
[/Quote]

我是不知道要保留的小数是多少位,根据已有的double型的小数位数,来确定小数要保留的位数。
  • 打赏
  • 举报
回复
是这样么?

double x = 200.02356;
int part_num_count = Regex.Match(x.ToString(),@"(?<=\.)\d+").Value.ToCharArray().Count();//5
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
比较烦的地方就是,当double 类型,末尾有0时,不好转换成string。
宝_爸 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 2 楼 的回复:

不太懂你提的问题,你是想说如何判断一个double 数据类型 小数点的位数吗?我有一个比较笨的方法 就是把double 数据看成一个字符串,然后截取"."后的数据,判断其长度


如果是 double d = 1.000;
string strD = d.ToString();
那么 strD 存的值为 “1”
[/Quote]

d.ToString("F3");
保留小数点后面3位。 想保留几位就把3改成几。

参考:
http://msdn.microsoft.com/en-us/library/kfsatb94.aspx
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

baidu google

double 类型数据 如何用二进制表示
[/Quote]

搜索了好多,没遇到可实行的办法。 所以,到此来请教高手。
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

不太懂你提的问题,你是想说如何判断一个double 数据类型 小数点的位数吗?我有一个比较笨的方法 就是把double 数据看成一个字符串,然后截取"."后的数据,判断其长度
[/Quote]

如果是 double d = 1.000;
string strD = d.ToString();
那么 strD 存的值为 “1”
真相重于对错 2012-06-05
  • 打赏
  • 举报
回复
baidu google

double 类型数据 如何用二进制表示
study_hard_01 2012-06-05
  • 打赏
  • 举报
回复
不太懂你提的问题,你是想说如何判断一个double 数据类型 小数点的位数吗?我有一个比较笨的方法 就是把double 数据看成一个字符串,然后截取"."后的数据,判断其长度
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
急啊 。。。
风之影子 2012-06-05
  • 打赏
  • 举报
回复
字符型转换为字符串

1. // C 货币
2. 2.5.ToString("C"); // ¥2.50
3. // D 10进制数
4. 25.ToString("D5"); // 25000
5. // E 科学型
6. 25000.ToString("E"); // 2.500000E+005
7. // F 固定点
8. 25.ToString("F2"); // 25.00
9. // G 常规
10. 2.5.ToString("G"); // 2.5
11. // N 数字
12. 2500000.ToString("N"); // 2,500,000.00
13. // X 16进制
14. 255.ToString("X"); // FF
xulonghua1988219 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 10 楼 的回复:

C# code
double x = 200.00000;
int part_num_count = Regex.Match(x.ToString(), @"(?<=\.)\d+?(?=0*$)").Value.ToCharArray().Count();
string temp = x.ToString("F"+part_nu……

int par……
[/Quote]

没理解我的意思。 已知 double d = 0.13140, 现在同一个程序里有另一个double型的数 d2, d2要赋值给一个数据集的字段,字段要求d2的精度和d相同。
enaking 2012-06-05
  • 打赏
  • 举报
回复
d.ToString("F3");
保留小数点后面3位。 想保留几位就把3改成几。
emailbyjohn 2012-06-05
  • 打赏
  • 举报
回复
double a=1.111
a.ToString("F2");
a.ToString("0.00");

貌似都可以

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧