同じ計算を0.1×10と行って1桁ずつ増やしていったら
tmp1 = 0.000001;
tmp2 = 1000000;
の時点で結果が0になってしまった。
キャストの問題でしょうか?