相关疑难解决方法(0)

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

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

"小"样本(有效数字可以是任何大小,例如1.5E200或1e-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万
查看次数

为什么Convert.ToString格式会以这种方式加倍?

请考虑以下代码:

var rateUsed = 0.00000001;
var rateUsedConvertToString = Convert.ToString(rateUsed);
var rateUsedToString = rateUsed.ToString();
Run Code Online (Sandbox Code Playgroud)

而不是我的字符串是"0.00000001",它们都是"1E-08".我无法控制rateUsed的初始类型,它是一个double,我想要double的精确字符串表示.

为什么会发生这种情况,如果以双重值开始,如何将0.00000001作为字符串?

c#

2
推荐指数
1
解决办法
3098
查看次数

标签 统计

c# ×2

.net ×1

floating-point ×1

number-formatting ×1