还望C#大神拍板解答!!
例如 double dT=5.64551855509973;
保留4位有效位为:5.646
PS:dT.ToString("G4"),结果为5.646,这个方法靠谱吗?
把dT.ToString("G4"),改为dT.ToString("0.0000");
看你的需求,有效位数的舍进问题,向上还是向下舍进还是直接去掉,一般习惯都采用四舍五入,不足补0,也就是@赖老师的那种
public static double foo(double d, int n)
{
if (d == 0.0)
return 0;
if (d > 1 || d < -1)
n = n - (int)Math.Log10(Math.Abs(d)) - 1;
else
n = n + (int)Math.Log10(1.0 / Math.Abs(d));
if (n < 0)
{
d = (int)(d / Math.Pow(10, 0 - n)) * Math.Pow(10, 0 - n);
n = 0;
}
return Math.Round(d, n);
}
你试下这个,这样子的还是得自行封装一个方法,ToString("G4")不一定准确
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y