同时应用多个数字格式,C#

时间:2017-07-30 12:02:08

标签: c# string format numeric

是否可以同时将多个格式应用于double?

例如,我想要这样的东西

double d = 1234.567;
string format = ? 
// sig digit 4 , digit after decimal 4 , format = combination of G4 and F4 , G4F4?
d.toString(format) => "1235.0000"

在这里," G4"将有效数字限制为4和" F4"确定小数点后的位数。

我知道可以使用2个单独的格式

Double.Parse((1234.567).ToString("G4")).ToString("F4") => "1235.0000"

更多示例

//sig digit 3 , digit after decimal 0 , format = combination of G3 and F0
d.toString(format) => "1230"
//sig digit 8 , digit after decimal 8 , format = combination of G8 and F8
d.toString(format) => "1234.56700000"
//sig digit 1 , digit after decimal 1 , format = combination of G1 and F1
d.toString(format) => "1000.0"

2 个答案:

答案 0 :(得分:0)

您的格式字符串确实没有任何意义。有效数字可以在小数点之前或之后;你试图同时指定两种重叠和矛盾的格式。

我认为您正在寻找:<body> <div class="container"> <div class="sidebarcontainer"> <div class="innersidebarcontainer"> <div class="sidebar"> </div> </div> </div> <!-- --> <div class="mainpage"> <div class="page"> <div class="card"> <div class="image"> <img src="http://winsupersite.com/site-files/winsupersite.com/files/archive/winsupersite.com/content/content/143119/pr8.jpg"> </div> <div class="info"> <span>This is name of book</span> <span>this is author</span> <span>this is price</span> <span>this is rating</span> </div> </div> </div> </div> </div> <div class="footer"></div> </body>

答案 1 :(得分:0)

我认为您的问题是关于Standard Numeric Format Strings,那么您应该遵循其规范,否则您将获得FormatException,如表格末尾所示:

  

任何其他单个字符|未知的说明符|结果:在运行时引发FormatException

如何使用这样的扩展方法:

public static string ToString(this double value, int sig)
{
    return double.Parse(value.ToString($"G{sig}")).ToString($"F{sig}");
}