2012-01-03 47 views

回答

5

我知道沒有這樣的功能,我不認爲它存在。這樣的功能將成爲Math類的一部分,我不能在那裏看到它。所以你必須去與value-Math.Truncate(value)

public static double Frac(double value) 
{ 
    return value-Math.Truncate(value); 
} 
+0

感謝您的答覆。進一步搜索後,我也發現模數1有效。即值%1;這兩個答案都正確處理負值。 – James 2012-01-03 12:17:11

+0

@Self實際上,模量可能會導致準確性問題。 (我假設由於浮點數學)。 – James 2012-01-03 12:20:33

+2

'價值%1.0'的作品,因爲它不是模數,而是餘數。令人驚訝的是它比我的變種稍微快一點。 – CodesInChaos 2012-01-03 12:21:22

0

試試這個link

double value, fraction; 
value = 8.24; 
fraction = value - (int) value; 

OR

Decimal d=1.58M; 
Decimal fractional=d-Decimal.Truncate(d); 
+1

第一個受限於'int'的有限範圍,第二個不會返回負數的小數部分(-0.25 => 0.75),也可能遭遇舍入問題。最後一個是正確的。 – CodesInChaos 2012-01-03 12:15:22

+2

@DavidHeffernan我的bad.i刪除了它 – PresleyDias 2012-01-03 12:15:56

相關問題