可能重复:
Python舍入错误与浮点数
python数学是错误的
我不能让Python正确地做减法1 - 0.8并分配它.它一直提出错误的答案,0.19999999999999996.
我探讨了一下:
sq = {}
sub = {}
for i in range(1000):
sq[str(i/1000.)+'**2']=((i/1000.)**2)
sub['1-'+str(i/1000.)]=(1.0-(i/1000.))
Run Code Online (Sandbox Code Playgroud)
并发现这个错误发生在0到1到第三个小数位之间的一个随机的浮点组.当您对这些浮点数进行平方时,也会发生类似的错误,但会出现类似的错误.
我希望对此有一个解释,以及如何使Python正确运算.使用round(x,3)是我现在使用的解决方法,但它并不优雅.
谢谢!
这是我的Python 2.7.3 shell中的一个会话:
*** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32. ***
*** Remote Python engine is active ***
>>> 1-0.8
0.19999999999999996
>>> print 1-0.8
0.2
>>> a = 1-0.8
>>> a
0.19999999999999996
>>> print a
0.2
>>> a = 0.2
>>> print a
0.2
>>> a
0.2
>>> …Run Code Online (Sandbox Code Playgroud) 我希望一个Toast消息显示在一个位置,另一个Toast消息同时显示在另一个位置.
多个Toast消息似乎总是按顺序排队和显示.是否可以同时显示两条消息?
是否有一种解决方法,至少提供该外观,并不涉及搞乱活动布局?
编辑:似乎第一个问题的答案是否定的,这是不可能的.解决方法怎么样?对我来说,一个解决方案包括像Toast一样出现在应用程序之上的东西,并且不会干扰用户与应用程序的交互(因此,不是AlertDialogue或任何调用onPause()等的东西).
Win 7下的Vim将我的shiftwidth设置改为我不想要的.sml文件.
我想要的是所有东西都只用空格缩进,而且一切都是4个空格.这是我当前的_vimrc文件的内容,虽然我尝试了很多变化:
set nocompatible
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set guifont=Consolas:h9:cANSI
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
filetype plugin indent on
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Run Code Online (Sandbox Code Playgroud)
当我第一次启动Vim没有加载文件时,:set shiftwidth返回shiftwidth=4.当我打开.py或.php文件时,它仍然会返回shiftwidth=4.但是,当我打开.sml文件或只保存带有.sml扩展名的空白文件时,它会更改为shiftwidth=2.手动设置:set shiftwidth=2适用于该会话,但每次打开.sml文件时都必须这样做.
它仅影响具有打开的.sml文件的缓冲区.未保存的缓冲区或同时打开其他文件类型的缓冲区显示shiftwidth = 4.
之前我没有使用filetype插件缩进的东西,但经过一些搜索后似乎可能是问题所在.我的ftplugin文件夹中没有文件,所以我添加filetype plugin indent on到我的_vimrc,创建了sml.vim并将其放在ftplugin文件夹中(再次尝试了很多变化:
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Set the tab width
let s:tabwidth=4 …Run Code Online (Sandbox Code Playgroud) 我在RelativeLayout中有一些EditText视图.第一个正确地获得焦点,但是当用户在键盘上单击"完成"时,它通常不会将焦点发送到用户期望的视图.假设"完成"按钮使用FOCUS_FORWARDID,我试图通过使用如下android:nextFocusForward属性来修复此行为:
<EditText
android:id="@+id/editTextName"
...
android:nextFocusForward="@id/editTextNameColour" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextNameColour"
...
android:nextFocusForward="@id/editTextBackgroundColour" />
<EditText
android:id="@+id/editTextBackgroundColour"
... />
Run Code Online (Sandbox Code Playgroud)
它没有编译,因为Eclipse给我一个错误消息,如:"错误:错误:找不到与给定名称匹配的资源(在'nextFocusForward',值为'@id/editTextNameColour')".
我知道名称是正确的,因为我从Eclipse的下拉列表中选择了它,并且所有文件都已保存.
Android Developers Reference说这EditText是正确的类型(a View).
如果有比使用android:nextFocusXxx属性更好的方法,包括在Java代码中执行它,那也没关系.
我不愿意通过使用一个来解决这个问题LinearLayout.
另外,我是对的,"完成"按钮使用了FOCUS_FORWARD?
谢谢
解决方案:我需要使用@+id...而不是@id因为我引用了稍后在代码中声明的对象; 并且键盘似乎使用FOCUS_DOWN而不是FOCUS_FORWARD.