millisecond如果second零件也从timestampw/o中取出,我该如何丢弃/绕过零件timezone?
假设我有一个浮点数数组,按排序(让我们说升序)排序,其总和已知是一个整数N.我希望将这些数字"舍入"为整数,同时保持其总和不变.换句话说,我正在寻找一种算法,将浮点数数组(称之为 fn)转换为整数数组(称之为in),这样:
Nfn[i]与其对应的整数之间的差值in[i]小于1(或者如果你真的必须等于1)fn[i] <= fn[i+1]),整数也将按排序顺序(in[i] <= in[i+1])鉴于满足这四个条件,sum((in[i] - fn[i])^2)最好将舍入方差()最小化的算法,但这并不是什么大问题.
例子:
[0.02, 0.03, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14]
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
[0.1, 0.3, 0.4, 0.4, 0.8]
=> [0, 0, 0, 1, 1]
[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
=> [0, 0, 0, … 我需要将一个数字舍入到最接近的5的倍数(向上或向下).例如,以下是数字列表及其旁边需要向上/向下舍入的数字.
12.5 10
62.1 60
68.3 70
74.5 75
80.7 80
Run Code Online (Sandbox Code Playgroud)
数字只会是积极的.
在玩游戏时,我在swift中找到了round()函数.它可以用如下:
round(0.8)
Run Code Online (Sandbox Code Playgroud)
哪个将按预期返回1.这是我的问题:
我怎么快速地绕千分之一?
我希望能够插入一个数字,比如0.6849,然后回到0.685.round()如何做到这一点?或者,它不是,在这种情况下,什么功能呢?
我正在尝试length = 001在Python 3中制作,但每当我尝试将其打印出来时,它会截断该值而不使用前导零(length = 1).如何length在打印之前不必转换为字符串来阻止这种情况发生?
如何在python中将数字向上舍入到第二个小数位?例如:
0.022499999999999999
应该最高可达0.03
0.1111111111111000
应该最高可达0.12
如果在小数点后三位有任何值,我希望它总是向上舍入,留下小数点后面的2个值.
我正面临着一个奇怪的round()功能行为:
for i in range(1, 15, 2):
n = i / 2
print(n, "=>", round(n))
Run Code Online (Sandbox Code Playgroud)
此代码打印:
0.5 => 0
1.5 => 2
2.5 => 2
3.5 => 4
4.5 => 4
5.5 => 6
6.5 => 6
Run Code Online (Sandbox Code Playgroud)
我希望浮动值总是向上舍入,而是舍入到最接近的偶数.
为什么会出现这种行为,以及获得正确结果的最佳方法是什么?
我尝试使用fractions但结果是一样的.
如何将浮点数舍入到Java中的下一个整数值?假设
2.1 - > 3
3.001 - > 4
4.5 - > 5
7.9 - > 8
我试过以下,
double doubleVal = 1.745;
double doubleVal1 = 0.745;
BigDecimal bdTest = new BigDecimal( doubleVal);
BigDecimal bdTest1 = new BigDecimal( doubleVal1 );
bdTest = bdTest.setScale(2, BigDecimal.ROUND_HALF_UP);
bdTest1 = bdTest1.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("bdTest:"+bdTest); //1.75
System.out.println("bdTest1:"+bdTest1);//0.74 problemmmm ????????????
Run Code Online (Sandbox Code Playgroud)
但得到了奇怪的结果.为什么?