在十进制(双精度)后舍入数字的最快方法是什么?

1 c#

例如,我的号码是345.38,223.805555,21.3333.我想得到小数点后的数字并将其四舍五入.

345.38 --> 4

2323.805555 --> 8

21.3333 --> 3
Run Code Online (Sandbox Code Playgroud)

mmr*_*mmr 7

乘以10

天花板(总是向上舍入,如果低于0.5则使用'round'向下舍入)

通过10找到modding的结果

喜欢:

float myFloat = 123.38f;
float myBiggerFloat = Math.Ceiling(myFloat * 10.0f);
int theAnswer = ((int)myBiggerFloat % 10);
Run Code Online (Sandbox Code Playgroud)

或者只是在SO上寻求家庭作业的帮助,无论哪种方式似乎都有效.

  • 通过乘以10来担心浮点类型上的溢出是一个延伸.十进制是范围最小的一个,它的最大值仍然是7.9*10 ^ 28.在浮点数的情况下,我更担心有效数字而不是溢出. (3认同)