2013-10-03 108 views
0

将双精度值从12.45转换为像00001245(字符串长度= 8)的字符串。将双精度转换为字符串(C#)

我该怎么做?

+1

请提供有关要求和限制的详细信息。它将始终是8个字符的字符串?什么数字超过8位数字? –

+1

它会始终精确到2DP? – doctorlove

回答

2
String.Format("{0:D8}", (int)(12.45 * 100)); 
+0

我收到一个异常:_“格式说明符无效。”_ –

+0

转换为'int'丢失。 'D'是整数。 – Rotem

+0

@Jeroen:你说得对。我纠正了我的答案。 – Jojo

2

你可以这样做:

  • 乘以100,摆脱.

  • 投它的一个int,摆脱剩小数。

  • 将其转换为stringToString()

  • 和PAD其左侧为8的总计TOTALSIZE与'0'


double d = 12.45; 
string value = ((int)(d * 100)).ToString().PadLeft(8, '0'); 
1

如果你的双总是有2位逗号后,看起来像你需要乘以100并使用String.PadLeft方法,直到你g等8字符串的长度。

double d = 12.45; 
Console.WriteLine((d * 100).ToString().PadLeft(8, '0')); 

输出将是;

00001245 

这里一个DEMO

0

这也可以做到:

String.Format("{0:00000000}", 12.45 * 100) 
+0

您可以更新您的当前答案,而不是添加另一个答案。这在我看来会更好';)' –

+0

我发布它作为另一个答案,因为它使用了另一种方法。我不想混合好/坏解决方案:) –

+0

好的,你的选择':)' –

相关问题