場景1:
c#保留2位小數,.tostring("f2")確實可以,但是如果這個數字本來就小數點後面三位比如1.253,那麼轉化之後就會變成1.25.可不可以剛好保留到最後一位不是0的位置?
預設保留2位,如果真的有3位小數,就保留3位,有4位就保留4位。
先說一下tostring("0.00##")中0和#的區別:
0 代表佔位的。如果tostring("0.00") 這樣就是保留兩位小數,無論小數有多少位或者無小數,結果都是兩位小數。例如 1.1234 那麼結果是1.12。如果是1.2 那麼結果會補零,為1.20。
# 代表後面的不是零就被保留,如果是0就去掉。例如tostring("0.##") 那麼1.20的話結果是1.2。
對於場景1的問題,預設有兩位就是00,其它的如果大於兩位就不是零就保留的話,可以下面這樣寫:
double dd = 1.2530;
string ret = dd.tostring("0.00####"); // 1.253
場景2:
根據國際慣例,有時候我們需要對超出的位數「四捨五入」。用c# 實現保留兩位小數的方法有很多,常用的總結如下:
1、math.round(0.333333,2);//按照四捨五入的國際標準
2、double dbdata=0.335333; string str1=string.format("",dbdata);//預設為保留兩位
3、float i=0.333333; int j=(int)(i * 100); i = j/100;
4、decimal.round(decimal.parse("0.3333333"),2)
5、private system.globalization.numberformatinfo nfi = new system.globalization.numberformatinfo();
float test=0.333333f;
nfi.numberdecimaldigits=2;
string result=test.tostring("n", nfi);
6、string result= string.format("",convert.todecimal("0.333333").tostring());
7、convert.todecimal("0.33333333").tostring("0.00");
C 保留2位小數
1.只要求保留n位不四捨5入 float f 0.55555f int i int f 100 f float i 1.0 100 2.保留n位,四捨五入 decimal d decimal.round decimal.parse 0.55555 2 3.保留n位四捨五入 math.round 0....
JS保留2位小數
js保留兩位小數 對於一些小數點後有多位的浮點數,我們可能只需要保留2位,但js沒有提供這樣直接的函式,所以我們得自己寫函式實現這個功能,如下 function changetwodecimal x var f x math.round x 100 100 return f x 功能 將浮點數四捨五...
js 保留2位小數
一 四捨五入法 1.jquery 小數計算保持精度,同時保留兩位數 tofixed 方法可把 number 四捨五入為指定小數字數的數字。var num 1.45698 num parsefloat num.tofixed 2 注意tofixed方法返回的結果是字串型別 2.tofixed 四捨五入...