double 小数点后面的0

2009菜鸟 2015-06-19 11:00:08
c# :
数据位double 类型 :
double dnum=1.20 转换为:1.2
double dnum2=2.00 转换为: 2
...全文
581 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmarslyg 2015-06-29
  • 打赏
  • 举报
回复
可以用正则判断一下,再从后找出第一个0出现的位置?再用字符串截取
moonwrite 2015-06-19
  • 打赏
  • 举报
回复
我觉得统一保持2个小数点 才是美观的
道玄希言 2015-06-19
  • 打赏
  • 举报
回复
Console.WriteLine(dnum.ToString()); Console.WriteLine(dnum2.ToString());
於黾 2015-06-19
  • 打赏
  • 举报
回复
double d = 1.20; string s = d.ToString(); string s1 = d.ToString("f2"); 自己测试一下效果就知道了 如果原始数据本身就是string类型的"1.20",那么你先转成double型,多余的0自己就没了
2009菜鸟 2015-06-19
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
double dnum=1.20 转换为:1.2 这需要转吗,1.20和1.2在内存里本来就是一样的 你只有转字符串显示的时候才需要考虑后面到底要显示几个0
是啊,就是显示时候如何控制
  • 打赏
  • 举报
回复
Console.WriteLine(Math.Round(1.041, 1));
显示的是1…… 这不是decimal类型
於黾 2015-06-19
  • 打赏
  • 举报
回复
double dnum=1.20 转换为:1.2 这需要转吗,1.20和1.2在内存里本来就是一样的 你只有转字符串显示的时候才需要考虑后面到底要显示几个0
2009菜鸟 2015-06-19
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
你为啥不要有0呢?2.0和2在精度一致的情况下是一样的
是啊,界面显示不友好
  • 打赏
  • 举报
回复
你为啥不要有0呢?2.0和2在精度一致的情况下是一样的
2009菜鸟 2015-06-19
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
Math.Round(1.20,1)
这样不灵活啊,如果为2.00 呢?
  • 打赏
  • 举报
回复
Math.Round(1.20,1)
  • 打赏
  • 举报
回复
0.0000.ToString("0.##")也是0
  • 打赏
  • 举报
回复
你就是不想要多余的零嘛,那应该是123.40d.ToString("0.##"); 0表示至少保留一位整数,#表示忽略相等值的零值(损失精度,但值不变)
於黾 2015-06-19
  • 打赏
  • 举报
回复
再次确认,你到底是要舍去多余的0,还是补齐0
effun 2015-06-19
  • 打赏
  • 举报
回复
dnum.ToString("0.00")
tcmakebest 2015-06-19
  • 打赏
  • 举报
回复
需要改一下,不然 0 就没了
decimal d = 0.0000m;

string s = d.ToString();
if (s.IndexOf(".") > 0)
    s = s.TrimEnd('0').TrimEnd('.');
tcmakebest 2015-06-19
  • 打赏
  • 举报
回复
1.000 = 1, 楼主要的结果必须要转成字符串的时候进行处理。
decimal d = 1.0000m;

string s = d.ToString();
if (s.IndexOf(".") > 0) 
    s = s.Trim('0').Trim('.');

110,533

社区成员

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

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

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