如何在不进行ToString()转换的情况下获取小数点后的第一个数字?

时间:2018-06-29 15:20:08

标签: c# .net

例如,如果我将1050/256除以4.1015625。我需要小数点后的第一个数字(在这种情况下为1)。我不想涉及ToString()转换,然后再次将其解析为数字。

itsme86的这张图片: enter image description here

Jeroen Mostert的这张图片: enter image description here

3 个答案:

答案 0 :(得分:0)

那又怎么样:

decimal result = 4.1015625m;

result = result - (int)result;
result = Decimal.Round(result, 1, MidpointRounding.AwayFromZero);

如果需要,可以将其合并为一行,这样更易​​于阅读。

答案 1 :(得分:0)

Math.Floor((4.1015625 - Math.Floor(4.1015625)) * 10)

答案 2 :(得分:0)

我会这样:

首先,我将减去给定数字的小数点分隔符之前的数字。 然后我将其乘以10。 例如:4.2-4 = .2 * 10 = 2

注意:您不能将浮点数用于精确的数学运算,因为某些值不能正确表示。因此,如果需要这样的精确值,请始终强制转换为小数点/使用小数,而不是浮点数/双精度。