代码之家  ›  专栏  ›  技术社区  ›  Kosmo零

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

  •  -2
  • Kosmo零  · 技术社区  · 6 年前

    这个问题已经有了答案:

    例如,如果我除以1050/256,得到4.1015625。我需要小数点后第一位的值(本例中为1)。我不想涉及toString()转换,然后再将其解析为数字。

    这张照片是为它拍摄的86: enter image description here

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

    3 回复  |  直到 6 年前
        1
  •  0
  •   ivcubr Freak    6 年前

    怎么办:

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

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

        2
  •  0
  •   Liam Joshua    6 年前
    Math.Floor((4.1015625 - Math.Floor(4.1015625)) * 10)
    
        3
  •  0
  •   Tim    6 年前

    我会这样做:

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

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