C# double保留4位有效位数采用ToString("G4"),靠谱吗?

还望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