重要的是要注意我不是在寻找舍入函数.我正在寻找一个函数,它返回任意数字的简化十进制表示中的小数位数.也就是说,我们有以下内容:
decimalPlaces(5555.0); //=> 0
decimalPlaces(5555); //=> 0
decimalPlaces(555.5); //=> 1
decimalPlaces(555.50); //=> 1
decimalPlaces(0.0000005); //=> 7
decimalPlaces(5e-7); //=> 7
decimalPlaces(0.00000055); //=> 8
decimalPlaces(5.5e-7); //=> 8
Run Code Online (Sandbox Code Playgroud)
我的第一直觉是使用字符串表示:拆分'.',然后打开'e-',并进行数学计算,如此(示例是详细的):
function decimalPlaces(number) {
var parts = number.toString().split('.', 2),
integerPart = parts[0],
decimalPart = parts[1],
exponentPart;
if (integerPart.charAt(0) === '-') {
integerPart = integerPart.substring(1);
}
if (decimalPart !== undefined) {
parts = decimalPart.split('e-', 2);
decimalPart = parts[0];
}
else {
parts = integerPart.split('e-', 2);
integerPart = parts[0];
}
exponentPart = parts[1]; …Run Code Online (Sandbox Code Playgroud) 我使用Object.freeze作为防止自己违反自己规则的手段.当我试图做出错误的任务时,我希望Object.freeze能和我说话.但是,Object.freeze只是让分配无声地失败!例如,如果我这样做
/*
* Frozen singleton object "foo".
*/
var foo = (function() {
var me = {};
me.bar = 1;
if (Object.freeze) {
Object.freeze(me);
}
return me;
})();
foo.bar = 2;
console.log(foo.bar);
Run Code Online (Sandbox Code Playgroud)
控制台将记录"1",但我不知道我做了一个错误的任务.这当然会导致我的代码中出现危险的意外行为,当冻结对象的整个点是为了避免意外.事实上,我更有可能通过不冻结对象,让错误的分配发生,以及稍后由于错误的值导致我的代码失败而得到详细的错误输出.
我想知道JavaScript是否在任何浏览器中都有任何隐藏的"不可变对象警告"编译指示,以便我可以知道何时尝试改变"Object.frozen"对象.
我的系统用户是milosz,它映射到project_great中的PostgreSQL 用户pg_ident.conf。我正在使用对等身份验证通过 unix 域套接字连接到 PostgreSQL 数据库。此连接方法在使用 时有效,但在使用 Python 脚本中的相同参数psql时则失败。py-postgresql
在这里,我使用以下命令成功连接到数据库psql:
$ psql -U project_great \
> -d project_great \
> -h /var/run/postgresql
psql (9.3.4)
Type "help" for help.
project_great=>
Run Code Online (Sandbox Code Playgroud)
这是database_test.py:
#!/usr/bin/env python3
import postgresql
params = {
'user': 'project_great',
'database': 'project_great',
'unix': '/var/run/postgresql',
}
connection = postgresql.open(**params)
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试通过运行连接到数据库./database_test.py:
$ ./database_test.py
Traceback (most recent call last):
File "./database_test.py", line 11, in <module>
sys.exit(main(sys.argv))
File "./database_test.py", …Run Code Online (Sandbox Code Playgroud) javascript ×2
console ×1
decimal ×1
fractions ×1
object ×1
postgresql ×1
precision ×1
python-3.x ×1
unix-socket ×1
warnings ×1