什麼是浮動轉換,像這樣的最佳方法:獲取浮動的比例沒有數字小數點前
0.433432 -> 0.43
0.672919 -> 0.67
3.826342 -> 0.82
6.783643 -> 0.78
我有一個int數組,並希望所有的值轉換它包含 謝謝:)
什麼是浮動轉換,像這樣的最佳方法:獲取浮動的比例沒有數字小數點前
0.433432 -> 0.43
0.672919 -> 0.67
3.826342 -> 0.82
6.783643 -> 0.78
我有一個int數組,並希望所有的值轉換它包含 謝謝:)
你想獲得分數部分和截斷它到兩位數。如果值積極和小你可以這樣實現它:
private static double Solution(double value) {
return (long)((value - (long)value) * 100)/100.0;
}
測試:
double[] test = new double[] {
0.433432,
0.672919,
3.826342,
6.783643, };
var result = test
.Select(item => $"{item} -> {Solution(item)}")
.ToArray();
Console.Write(string.Join(Environment.NewLine, result));
結果:
0.433432 -> 0.43
0.672919 -> 0.67
3.826342 -> 0.82
6.783643 -> 0.78
編輯:這是怎麼回事在Solution
方法:
value - (long) value
- 整數部分去除
(long) ((...) * 100)
- 擴大並截斷
()/100.0
- 縮小回
如果我們有,比方說,1234.5789
這三個階段會成爲:
0.5789
- 整數部分去除
57
- 擴大和截斷
0.57
- 縮小回
您可以減去整數值。
for(int i = 0; i < array.Length; i++)
array[i] -= ((int)array[i]);
那好像很合理。 Facepalm ^^ – Reeley
value = Math.Truncate(100 * value)/100;
OR
decimal result = TruncateDecimal(0.433432, 2);
嘗試新鮮事物? – EpicKip
你可以將你的原始值轉換爲int,然後減去原來的結果,然後用兩位小數打印出來 – Ian
你不知道如何在C#中做到這一點,或者你根本不知道如何做到這一點?如果你的邏輯不清楚,那麼即使C#也不能幫你.. –