转换浮点数的最佳方法是什么:
0.433432 -> 0.43
0.672919 -> 0.67
3.826342 -> 0.82
6.783643 -> 0.78
我有一个float数组,想要转换它包含的所有值 谢谢:))
答案 0 :(得分:1)
您希望获得小数部分,截断直至两位数。如果值正和小,您可以像这样实现:
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
- 缩小版
答案 1 :(得分:0)
您可以减去整数值。
for(int i = 0; i < array.Length; i++)
array[i] -= ((int)array[i]);
答案 2 :(得分:0)
value = Math.Truncate(100 * value) / 100;
OR
decimal result = TruncateDecimal(0.433432, 2);