2012-07-31 87 views

回答

5

嘗試

fraction = value - (long) value; 

或:

fraction = value - Math.Floor(value); 
+0

比我在打字時的解決方案更好! – Liam 2012-07-31 15:51:31

+0

我很樂意幫助你Liam和user1014842 – 2012-07-31 15:52:08

+0

這不僅是小數點後的部分。分數是順便說一句0.56439999999997781。認爲這不是OP想要的。 – 2012-07-31 15:56:05

1

你可以嘗試以下方法:

double d = 435.5644; 
    int n = (int)d; 

    var v = d - n; 

    string s = string.Format("{0:#.0000}", v); 

    var result = s.Substring(1); 

結果:5644

-1

編輯:引用了另一個問題(HTTP ://stackoverflow.com/questi附件/ 4512306/GET-小數部分的非數字式的JavaScript )你可以做到以下幾點:

double d = 435.5644; 
float f = 435.5644f; 
Console.WriteLine(Math.Round(d % 1, 4) * 10000); 
Console.WriteLine(Math.Round(f % 1, 4) * 10000); 

這會給你你要找的整數部分。

最好是這樣做,因爲Aghilas雅庫布回答,但是,在這裏下面另一個選項使用字符串處理。假設所有金額將有小數和小數點分隔符是一個點,你只需要拿到索引1

double d = 435.5644; 
Console.WriteLine(d.ToString().Split('.')[1]); 

float f = 435.5644f; 
Console.WriteLine(f.ToString().Split('.')[1]); 

否則,你可能會得到一個未處理的異常(。):System.IndexOutOfRangeException。

+0

好主意,但正如你所說的,當整數通過時會有一些問題 – 2012-07-31 16:14:38