真偽値比較表

C 0 のみ偽。
Perl 数値の 0、文字列の "0"、空文字列 ""、未定義値のみ偽。
Ruby false, nil のみ偽。
Python False、None、数値の 0、空文字、空のコンテナ(string、list、tuple、set、frozenset、dict など)のみ偽。
VimScript 数値の 0 のみ偽。文字列は暗黙にatoi()と同様の方法で数値に変換される。数値・文字列以外は真偽値として使えない。
VBScript Empty, Null, False, 0, "False", "0" は偽。文字列は大文字・小文字を区別しない。半角・全角も区別しない。

C (gcc -W -Wall -pedantic)では浮動小数点数を真偽値として使えた。コンパイルエラーになると思っていたのに。

printf(0.1 ? "true" : "false");	// true
printf(0.0 ? "true" : "false");	// false

参考:
http://www.kent-web.com/perl/chap5.html
http://www.ruby-lang.org/ja/man/?cmd=view;name=%C0%A9%B8%E6%B9%BD%C2%A4#if
http://www.python.jp/doc/release/ref/Booleans.html#Booleans
http://winofsql.jp/pinpoint/vbscripttruefalse.htm
vim の :h variables