标签: digits

如何在Java中将数字舍入到n个小数位

我想要的是一种将double转换为使用half-up方法进行舍入的字符串的方法 - 即如果要舍入的小数为5,则它总是向上舍入到前一个数字.这是在大多数情况下舍入大多数人所期望的标准方法.

我也希望只显示有效数字 - 即不应该有任何尾随零.

我知道这样做的一种方法是使用该String.format方法:

String.format("%.5g%n", 0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91239
Run Code Online (Sandbox Code Playgroud)

这很好,但它总是显示5位小数的数字,即使它们不重要:

String.format("%.5g%n", 0.912300);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91230
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用DecimalFormatter:

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
Run Code Online (Sandbox Code Playgroud)

收益:

0.91238
Run Code Online (Sandbox Code Playgroud)

但是你可以看到这使用了半均匀舍入.也就是说,如果前一个数字是偶数,它将向下舍入.我想要的是这个:

0.912385 -> 0.91239
0.912300 -> 0.9123
Run Code Online (Sandbox Code Playgroud)

在Java中实现这一目标的最佳方法是什么?

java decimal rounding digits

1209
推荐指数
22
解决办法
155万
查看次数

检查字符串是否仅包含数字

我想检查一个string只包含数字.我用过这个:

var isANumber = isNaN(theValue) === false;

if (isANumber){
    ..
}
Run Code Online (Sandbox Code Playgroud)

但意识到它也允许+-.基本上,我想确保一个input只包含数字而不包含其他字符.由于+100-5都是数字,isNaN()不是正确的方法.也许我需要一个正则表达式?有小费吗?

javascript numbers digits

275
推荐指数
9
解决办法
31万
查看次数

确定整数位数的有效方法

什么是一个非常有效的确定多少位有在C++中的整数的方法吗?

c++ integer digits

138
推荐指数
10
解决办法
22万
查看次数

控制R中打印输出的小数位数

R中有一个选项可以控制数字显示.例如:

options(digits=10)
Run Code Online (Sandbox Code Playgroud)

应该给计算结果10位数,直到R会话结束.在R的帮助文件中,digits参数的定义如下:

digits:控制打印数值时要打印的位数.这只是一个建议.有效值为1 ... 22,默认值为7

所以,它说这只是一个建议.如果我想总是显示10位数而不是更多或更少,该怎么办?

我的第二个问题是,如果我想显示超过22位数,即更精​​确的计算如100位数,该怎么办?是否可以使用基础R,或者我是否需要额外的包/功能?

编辑:感谢jmoy的建议,我尝试了sprintf("%.100f",pi)它给了

[1] "3.1415926535897931159979634685441851615905761718750000000000000000000000000000000000000000000000000000"
Run Code Online (Sandbox Code Playgroud)

它有48位小数.这是R可以处理的最大限制吗?

precision r digits output-formatting r-faq

103
推荐指数
2
解决办法
21万
查看次数

使用JavaScript获取位数

正如我的帖子标题所示,我想知道有多少位数var number.例如:如果number = 15;我的函数应该返回2.目前,它看起来像这样:

function getlength(number) {
  return number.toString().length();
}
Run Code Online (Sandbox Code Playgroud)

但Safari表示,由于TypeError:

'2' is not a function (evaluating 'number.toString().length()')
Run Code Online (Sandbox Code Playgroud)

如您所见,'2'实际上是正确的解决方案.但为什么呢not a function

javascript count digits

103
推荐指数
5
解决办法
16万
查看次数

如何判断字符串是否以数字开头?

我有一个以数字开头的字符串(从0到9)我知道我可以"或"使用startswith()测试10个案例但是可能有一个更整洁的解决方案

所以不要写作

if (string.startswith('0') || string.startswith('2') ||
    string.startswith('3') || string.startswith('4') ||
    string.startswith('5') || string.startswith('6') ||
    string.startswith('7') || string.startswith('8') ||
    string.startswith('9')):
    #do something
Run Code Online (Sandbox Code Playgroud)

有更聪明/更有效的方式吗?

python string digits

74
推荐指数
5
解决办法
8万
查看次数

求和数字的数字 - python

如果我想找到数字的数字之和,即:

  • 输入: 932
  • 输出:14,即(9 + 3 + 2)

这样做的最快方法是什么?

我本能地做了:

sum(int(digit) for digit in str(number))
Run Code Online (Sandbox Code Playgroud)

我在网上找到了这个:

sum(map(int, str(number)))
Run Code Online (Sandbox Code Playgroud)

哪种方法最适合速度,还有其他方法更快吗?

python sum digits

62
推荐指数
4
解决办法
17万
查看次数

如果数字小于10,则显示前导零

可能重复:
JavaScript等效于printf/string.format
如何使用JavaScript创建Zerofilled值?

我在变量中有一个数字:

var number = 5;
Run Code Online (Sandbox Code Playgroud)

我需要将该数字输出为05:

alert(number); // I want the alert to display 05, rather than 5.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我可以手动检查数字并将其作为字符串添加0,但我希望有一个JS功能可以做到吗?

javascript math numbers digits

60
推荐指数
2
解决办法
10万
查看次数

查找整数的位数

找到正整数位数的最佳方法是什么?

我找到了这3种基本方法:

你可以在大多数语言中计算log10(x)= ln(x)/ ln(10).

首先我认为字符串方法是最脏的,但我想的越多,我认为这是最快的方法.或者是吗?

algorithm counting digits

56
推荐指数
5
解决办法
7万
查看次数

如何在JavaScript中将整数分隔成数组中的单独数字?

到目前为止这是我的代码:

var n = 123456789;
var d = n.toString().length;
var digits = [];
var squaredDigits = [];
for (i = d; i >= 1; i--) {
    var j = k / 10;
    var r = (n % k / j) - 0.5;
    var k = Math.pow(10, i);
    var result = r.toFixed(); 
    digits.push(result);
}

console.log(digits);
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的代码时,我得到了这个: [9, 1, 2, 3, 4, 5, 6, 7, 8]

如果有人能看到问题或找到更好的解决方案,我将非常感激!

javascript arrays digits

50
推荐指数
6
解决办法
12万
查看次数