这就是我想要实现的目标:
如果一个浮点数超过4个小数位,则只保留到前4个12位(不要舍入。)
例如:111.3547698 - > 111.3547
如果浮点数小于4,则保持不变
我遇到了这个命令:
float example = 111.3547698;
((Math.Truncate(Example * 1000)) / 1000)
但我不想回合。根据上面发布的命令,111.3547698 - > 111.354
但我需要留下来:111.3547
答案 0 :(得分:4)
强制进行此类截断的一种方法是减去少量数据,以便Math.Round按需运行。
Math.Round(111.3547698 - 0.00005, 4)
相当于
Math.Round(111.3547198, 4)
它确实为您提供了所需的111.3547。
一般情况是
Math.Round(num - 0.5/(Math.Pow(10, digits)), digits)
数字> 0
有关类似的问题/答案,请参阅https://codereview.stackexchange.com/questions/51951/truncate-decimal-places。
答案 1 :(得分:0)