java - 如何获得数字的某个小数位?
问题描述
我想实现 RadixSort 并获取特定小数位的数字。
int num (int elem, int place)
--- if element == 12225 and place == 0
--- expected output would be 5 (starting to count by right)
--- if place == 4 expected output would be 1
我写了这个方法。但它既不工作也不高效。
static int key(int element, int decimalPlace) {
if (element < 0)
throw new IllegalArgumentException("invalid argument");
int tmp = (int) (Math.log10(element) + 1);
if (decimalPlace > tmp)
return 0;
else {
return Integer.parseInt(String.valueOf(Integer.toString(element).charAt(tmp - decimalPlace)));
}
}
我想我应该能够更有效地解决这个问题
解决方案
我会做:
return ( element / (int) Math.pow(10, decimalPlace) ) % 10
推荐阅读
- javascript - 如何排除特定版本的 npm 包?
- algorithm - 经典Cracking the Coding Interview的运行时间a^3 + b^3 = c^3 + d^3?
- reactjs - 使用反应钩子从子组件更新父数组数据
- pandas - matplotlib:绘制一条线,但将其分隔为两种不同的样式
- c++ - 通过 API 控制 DJI 相机
- scala - 如何仅根据值的逻辑条件过滤键、值对并构造键的 rdd?
- reactjs - React JS:理解状态
- javascript - 无法在节点 js 中读取八位字节流响应?
- verilog - 如何在 Verilog 中分配模块参数?
- java - JUnit 测试不断收到空点异常