首页 > 解决方案 > 用字符串格式伪造小数

问题描述

我目前在一个小型 C# 程序中有以下多头。

long one = 1;
long two = 1005;
long three = 100000005;
long four = 1111112258552;

我想将它们格式化为字符串,使它们的大小为千分之一,而不用将值除以一千。

例子

Input               :               Output
1                                    0.001
1005                                 1.005
100000005                       100000.005
1111112258552               1111112258.552

我已经尝试过字符串格式{0:0,000}{0:0.000}但都没有提供我想要的结果。

我怎样才能达到我所追求的结果?任何提示或指示将不胜感激


一些示例代码

long one = 1;
long two = 1005;
long three = 100000005;
long four = 1111112258552;

string format = "{0:0,000}";
string s1 = String.Format(format, one);
string s2 = String.Format(format, two);
string s3 = String.Format(format, three);
string s4 = String.Format(format, four);

Console.WriteLine(s1);
Console.WriteLine(s2);
Console.WriteLine(s3);
Console.WriteLine(s4);

标签: c#stringformatstring-formatting

解决方案


为您的格式尝试“{0:0,.000}”。

long one = 1;
long two = 1005;
long three = 100000005;
long four = 1111112258552;
string format = "{0:0,.000}";
string s1 = String.Format(format, one);
string s2 = String.Format(format, two);
string s3 = String.Format(format, three);
string s4 = String.Format(format, four);

Console.WriteLine(s1);
Console.WriteLine(s2);
Console.WriteLine(s3);
Console.WriteLine(s4);

控制台输出:

0.001
1.005
100000.005
1111112258.552

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#the--custom-specifier-2


推荐阅读