相关疑难解决方法(0)

没有科学记数法的双到字符串转换

如何在.NET Framework中没有科学记数法的情况下将double转换为浮点字符串表示形式?

"小"样本(有效数字可以是任何大小,例如1.5E2001e-200):

3248971234698200000000000000000000000000000000
0.00000000000000000000000000000000000023897356978234562
Run Code Online (Sandbox Code Playgroud)

的无标准的数字格式都是这样的,和一个自定义格式也似乎并没有让小数点后具有开放位数.

这不是如何将double转换为字符串而没有10代表(E-05)的重复,因为那里给出的答案并没有解决手头的问题.这个问题中接受的解决方案是使用固定点(例如20位数),这不是我想要的.固定点格式化和修剪冗余0不能解决问题,因为固定宽度的最大宽度为99个字符.

注意:解决方案必须正确处理自定义数字格式(例如,其他小数分隔符,具体取决于区域性信息).

编辑:问题实际上只是取代前面提到的数字.我知道浮点数如何工作以及可以使用和计算哪些数字.

.net c# floating-point number-formatting

71
推荐指数
6
解决办法
8万
查看次数

Double ToString - 没有科学记数法

我刚刚遇到了一个很棒的"功能",如果有足够的小数位,.NET 默认Double.ToString()使用科学记数法.

.005.ToString() // ".005"
.00005.ToString() // "5E-05" 
Run Code Online (Sandbox Code Playgroud)

有没有人知道一种有效的方法让它以标准(非科学)符号显示为字符串?

我已经看到了这个问题,但是前两个答案对我来说似乎有些苛刻,因为他们都做了Double.ToString(),然后只是重新格式化结果.

谢谢你的帮助.

编辑:

所需的输出:

.00005.ToString() == ".00005"
Run Code Online (Sandbox Code Playgroud)

EDIT2:

所有重复和结束投票是什么?我在问题中特别说,类似的问题没有令人满意的答案.这个网站上的人太高兴了.

我的解决方案

如果它对任何人都有用:

/// <summary>
/// Converts the double to a standard notation string.
/// </summary>
/// <param name="d">The double to convert.</param>
/// <returns>The double as a standard notation string.</returns>
public static String ToStandardNotationString(this double d)
{
    //Keeps precision of double up to is maximum
    return d.ToString(".#####################################################################################################################################################################################################################################################################################################################################");

}
Run Code Online (Sandbox Code Playgroud)

注意:这仅适用于值> 1.我还没有找到一种有效的方法来为所有值执行此操作.

.net c# double tostring

20
推荐指数
1
解决办法
1万
查看次数

Double.ToString()何时以科学计数法返回值?

我假设它与前导零或尾随零的数量有关,但我在msdn中找不到任何能给我一个具体答案的东西.

在什么时候Double.ToString(CultureInfo.InvariantCulture)开始以科学记数法返回值?

c#

8
推荐指数
2
解决办法
6096
查看次数

标签 统计

c# ×3

.net ×2

double ×1

floating-point ×1

number-formatting ×1

tostring ×1