我需要以十进制表示法返回double的字符串表示形式而不是科学表达式,我在这里使用了已接受解决方案的修改版本:
Double ToString - No Scientific Notation
private static readonly string format = "." + new string('#', 324);
foo.ToString(format);
这适用于除了等于零的值,即0,0.0,0.000等,它返回一个空字符串。
对于任何零值,返回表示0的字符串的最简单方法是什么。
如果字符串为0或0.0等,我不介意,只要它是数字的而不是科学的。
编辑:我知道我可以添加条件语句来检查字符串是否为空但我有兴趣看看是否有办法使用字符串格式化。
答案 0 :(得分:1)
您可以随时添加如下语句:
foo.ToString(format)
if (string.IsNullOrEmpty(foo))
foo = "0";
答案 1 :(得分:1)
答案 2 :(得分:0)
也许这就是你要找的东西:
double aa = 12.33333;
string foo = String.Format("{0:0.#}", System.Convert.ToSingle(aa));
答案 3 :(得分:0)
Argh,人们使用的那些黑客。在这里给一个黑客更多:
foo.ToString(format + ";" + "-" + format + ";" + "0");
或
static readonly string newFormat = format + ";" + "-" + format + ";" + "0";
在代码源中的 format
下定义,只需:
foo.ToString(newFormat);
当然这是一个常数,所以它确实是:
foo.ToString(.####################################################################################################################################################################################################################################################################################################################################;-.####################################################################################################################################################################################################################################################################################################################################;0);
希望你喜欢它(我不喜欢)。