将双精度数转换为字符串给出意外的输出

发布于 2024-12-17 23:56:06 字数 189 浏览 0 评论 0原文

我有,

double d = 0.005;
d = d/100;
string str = Convert.ToString(d);

output of str = 5E-05

但我需要输出为 0.00005 而转换为字符串 0.00005 则变为 5E-05。

我该如何解决?

I have,

double d = 0.005;
d = d/100;
string str = Convert.ToString(d);

output of str = 5E-05

But I need output as 0.00005
While converting to string 0.00005 become 5E-05.

How can I resolve it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ゞ记忆︶ㄣ 2024-12-24 23:56:06

您需要一个 IFormatProvider:

http://www.csharp-examples.net/iformatprovider-numbers/< /a>
http://msdn.microsoft.com/en-us/library/7tdhaxxa.aspx

编辑:上面的海报为您提供了更多详细信息。

using System;

namespace test1{
    class MainClass {
        public static void Main (string[] args)     {
            double d = 0.005;
            d = d/100;
            string str = String.Format("{0:0.#####}",d);
            Console.WriteLine ("The double converted to String:  "+str);
        }
    }
}

这应该编译并显示您想要的内容。

没有比这个

编辑更清楚的了:
更具体的例子请看这里:`

http://www.csharp-examples.net/string-format-double /

`

You need a IFormatProvider:

http://www.csharp-examples.net/iformatprovider-numbers/
http://msdn.microsoft.com/en-us/library/7tdhaxxa.aspx

EDIT: The above poster give you more details.

using System;

namespace test1{
    class MainClass {
        public static void Main (string[] args)     {
            double d = 0.005;
            d = d/100;
            string str = String.Format("{0:0.#####}",d);
            Console.WriteLine ("The double converted to String:  "+str);
        }
    }
}

This should compile and show what you want.

It can't get any more clear than this

Edit:
For more concrete examples look here: `

http://www.csharp-examples.net/string-format-double/

`

明媚殇 2024-12-24 23:56:06

您想要指定将双精度数转换为字符串的格式。 Double.ToString 不允许您这样做(它使用科学计数法),因此您应该使用 String.Format

这是您的代码,已更新:

string str = String.Format("{0:0.#####}", 0.00005);

事实上,Double.ToString 实际上在兜帽。有关更多信息,请参阅此链接:MSDN有关 Double.ToString 的文档

请参阅以下链接以获取 String.Format 的更多示例:
使用String.Format的示例

You want to specify a format with which to convert the double to a string. Double.ToString does not let you do that (it uses scientific notation), so you should use String.Format, instead.

Here's your code, updated:

string str = String.Format("{0:0.#####}", 0.00005);

In fact, Double.ToString actually uses String.Format under the hood. See this link for more: MSDN docs about Double.ToString

Please see the following link for more examples of String.Format:
Examples of using String.Format

ぶ宁プ宁ぶ 2024-12-24 23:56:06

我找到了解决方案:

 string str = d.ToString("F99").TrimEnd("0".ToCharArray());

它工作正常。但我不知道这到底是做什么的。这适用于动态双值。

谢谢两位的回复。

I found the solution :

 string str = d.ToString("F99").TrimEnd("0".ToCharArray());

It is working fine. But what exactly this is doing that I don't know. This working for dynamic double value.

Thnks for both of you, who replied.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文