給定小數點'96 .154',我怎樣才能確保它總是四捨五入爲96.16(而不是正常舍入到小數點後兩位,這會給出96.15)。如何將小數加起來?
14
A
回答
16
類哈克而是一個非常直觀的方式來做到這一點:
var val = 96.154M;
var result = Math.Ceiling(val * 100)/100.0M;
+0
不像你說的最理想,但看起來像最好的解決方案 – 2012-08-03 11:50:19
5
我覺得你找Math.Ceiling
方法。
您可以將其與乘數相結合,以指定舍入多少個小數位。像這樣,
public float roundUp(float number, int numDecimalPlaces)
{
double multiplier = Math.Pow(10, numDecimalPlaces))
return Math.ceiling(number*multiplier)/multiplier;
}
6
0
以下是值和基數小數部分的roundUp方法的代碼。你應該用你的問題的基本分數是0.05M。然而,該方法可用於其他常見情況,即基本分數爲0.5M;你可以以有趣的方式應用它,例如使用0.3M的基數部分。嗯,我希望它應該回答你的問題,有樂趣:
static decimal roundUp(decimal aValue, decimal aBaseFraction)
{
decimal quotient = aValue/aBaseFraction;
decimal roundedQuotient = Math.Round(quotient, 0);
decimal roundAdjust = 0.0M;
if (quotient > roundedQuotient)
{
roundAdjust = aBaseFraction;
}
return roundAdjust + roundedQuotient * aBaseFraction;
}
0
這裏是我的版本綜述方法,在此可以將特定小數
void Main()
{
Console.WriteLine(RoundUp(2.8448M, 2));
//RoundUp(2.8448M, 2).Dump();
}
public static decimal RoundUp(decimal numero, int numDecimales)
{
decimal valorbase = Convert.ToDecimal(Math.Pow(10, numDecimales));
decimal resultado = Decimal.Round(numero * 1.00000000M, numDecimales + 1, MidpointRounding.AwayFromZero) * valorbase;
decimal valorResiduo = 10M * (resultado - Decimal.Truncate(resultado));
if (valorResiduo < 5)
{
return Decimal.Round(numero * 1.00M, numDecimales, MidpointRounding.AwayFromZero);
}
else
{
var ajuste = Convert.ToDecimal(Math.Pow(10, -(numDecimales + 1)));
numero += ajuste;
return Decimal.Round(numero * 1.00000000M, numDecimales, MidpointRounding.AwayFromZero);
}
}
相關問題
- 1. Kivy:小部件加起來
- 2. python 2.7強制將小數點後兩位加起來
- 3. 如何在Swift中只將數組的一部分加起來?
- 4. C:我如何總是將一個數字加起來
- 5. 我該如何總是將浮點數加起來?
- 6. 將數組元素3加起來3
- 7. 如何將數組的大小加倍
- 8. 整數不加起來
- 9. 選擇加起來數量
- 10. php加起來的數字
- 11. 如何將來自兩個數據集的數據一起加入矩陣
- 12. 如何將所有數字加起來幷包括輸入數字?
- 13. 爲什麼小數加起來錯誤在MySQL
- 14. 如果數字小於零並且負數將其隱藏起來jquery
- 15. 如何製作積分,然後將它們全部加起來
- 16. 我該如何將這個int加起來
- 17. 如何將mongodb和casbah連接起來?
- 18. 如何將`var`和`const`結合起來?
- 19. 如何將homeUrl和createUrl結合起來?
- 20. 如何將flowtype與spacemacs結合起來
- 21. 如何將Catalyst和ngettext結合起來?
- 22. Pydub - 將split_on_silence與最小長度/文件大小結合起來
- 23. Java程序將整數的倒數加起來最多爲n
- 24. 如何將每輪中的所有分數加起來得到總分
- 25. 如何將數字的二進制表示中的所有1加起來
- 26. 如何將來自兩個不同散列數組的值添加到一起?
- 27. 如何使用jQuery將來自2個URL的推文計數加在一起?
- 28. 如何將變量添加到一起而不會聚攏起來?
- 29. PHP將所有的值加起來foreach()
- 30. javascript(數學)加起來一個數組
如何96.154輪高達96.16,而不是向下取整到96.15?這將是很好的詳細說明如何四捨五入應該如何工作 – 2012-08-03 11:14:22
看看這個鏈接http://stackoverflow.com/questions/11740989/rounding-decimal-value/11741129#11741129 – sabz23 2012-08-03 11:15:14
這是實際的小數類型,或雙? – ken2k 2012-08-03 11:18:50