#技术岗笔试题求解#给一个"0.xxxx"型的正浮点数,删除小数点后的任意位数字,求能得到的最大小数是多少,需要删除末尾0
全部评论
假设给定的正浮点数为 $x$,要删除小数点后的第 $n$ 位数字,则可以将 $x$ 乘以 $10^n$,然后向下取整得到整数 $y$,再将 $y$ 除以 $10^n$,得到删除小数点后的第 $n$ 位数字之后的数。最后将这个数除以 $10^k$,其中 $k$ 是这个数末尾的零的个数,即可得到最终的结果。
具体的实现可以参考下面的 Python 代码:
```python
def min_float(x, n):
y = int(x * 10**n)
z = y // 10**(n-1)
while z % 10 == 0:
z //= 10
return z / 10**(n-len(str(z)))
```
其中,`x` 是给定的正浮点数,`n` 是要删除的小数点后的位数。函数返回的是删除小数点后的第 $n$ 位数字之后的最小正浮点数。
相关推荐
投递网易等公司10个岗位 >
点赞 评论 收藏
分享
点赞 评论 收藏
分享