我在这里错过了什么吗?
var someNumber = 123.456;
someNumber = someNumber.toFixed(2);
alert(typeof(someNumber));
//alerts string
Run Code Online (Sandbox Code Playgroud)
为什么不.toFixed()
返回一个字符串?
我想将数字四舍五入到2位小数.
我知道大多数小数都没有精确的浮点表示(浮点数学是否被破坏?).
但我不明白为什么4*0.1
打印得很好0.4
,但3*0.1
不是,当两个值实际上都有丑陋的十进制表示时:
>>> 3*0.1
0.30000000000000004
>>> 4*0.1
0.4
>>> from decimal import Decimal
>>> Decimal(3*0.1)
Decimal('0.3000000000000000444089209850062616169452667236328125')
>>> Decimal(4*0.1)
Decimal('0.40000000000000002220446049250313080847263336181640625')
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个增长率(Double
)的计算器,它将结果四舍五入到最接近的整数并从那里重新计算,如下:
let firstUsers = 10.0
let growth = 0.1
var users = firstUsers
var week = 0
while users < 14 {
println("week \(week) has \(users) users")
users += users * growth
week += 1
}
Run Code Online (Sandbox Code Playgroud)
但到目前为止我一直无法做到.
编辑 我有点喜欢这样:
var firstUsers = 10.0
let growth = 0.1
var users:Int = Int(firstUsers)
var week = 0
while users <= 14 {
println("week \(week) has \(users) users")
firstUsers += firstUsers * growth
users = Int(firstUsers)
week += 1
}
Run Code Online (Sandbox Code Playgroud)
虽然我不介意它总是四舍五入,但我不喜欢它,因为 …
是否有内置函数可以像下面这样循环?
10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20
Run Code Online (Sandbox Code Playgroud) 我有问题四舍五入.我有一个浮点数,我想要舍入到十进制的十分之一.但是,我只能使用.round
哪个基本上把它变成一个int,意思2.34.round # => 2.
是有一种简单的效果方式来做类似的事情2.3465 # => 2.35
有舍入一个简单的函数UP一DateTime
到最近的15分钟?
例如
2011-08-11 16:59
变 2011-08-11 17:00
2011-08-11 17:00
留下来 2011-08-11 17:00
2011-08-11 17:01
变 2011-08-11 17:15
我似乎无法找到一个关于一个简单问题的答案:如何将任何数字四舍五入到最近int
?
例如,每当数字为0.2,0.7,0.2222,0.4324,0.9999时,我希望结果为1.
到目前为止我有
int b = (int) Math.ceil(a / 100);
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有完成这项工作.
可能重复:
将小数点后的双精度数加到2位有效数字
我知道有很多关于如何围绕这种数字的例子.但有人可以告诉我如何圆双,获得我可以显示为字符串的值,并总是有2位小数?
我需要对浮点数进行舍入以在UI中显示.例如,一个重要人物:
1234 - > 1000
0.12 - > 0.1
0.012 - > 0.01
0.062 - > 0.06
6253 - > 6000
1999年 - > 2000年
有没有一种很好的方法可以使用Python库来实现这一点,还是我必须自己编写?