2011-10-29 54 views
0

我想要做的是使用相同重要小数位数来格式化数字。具有相同重要小数位数的格式浮点数

例子:

var a1 = 0.123456789; 
var b1 = 0.0; 
var c1 = 123.456789; 
var a2 = string.Format("????", a1); // the result i want is "0.123" 
var b2 = string.Format("????", b1); // the result i want is "0.00123" 
var c2 = string.Format("????", c1); // the result i want is "123.456" 

我想用这个汇率的呈现格式。

BR 安德烈亚斯

+0

哪种语言? – GolezTrol

+0

我使用C#,所以在该语言中的例子是首选:o) – Andreas

回答

2
var a1 = 0.123456789; 
var b1 = 0.0; 
var a2 = string.Format("{0:G3}", a1); 
var b2 = string.Format("{0:G3}", b1); 

编辑:

var a = 123.456789; 
var n = string.Format("{0:F0}", a); 
var d = string.Format("{0:G3}", a - (int)a); 
if (d.Length > 2) 
    n = n + d.Substring(1); 

label1.Text = n; 
+0

有趣的是,我刚刚编译我的第一个C#程序之一,以测试这是否会工作(它的确如此)。 – GolezTrol

+0

对不起,有点不清楚,包括多一个案例123.456 ...如果我使用这种格式,我只是得到123.小数点后三位不会包括在内。 – Andreas

+0

所以你想要一个3的精度,但只在逗号后面? – GolezTrol