何時も、お世話に成っています。
一部の演算結果とStr$()関数に不具合(?)
Dim t As Double
t=999999999999994/10
OutputDebugString("999999999999994/10 = "+Str$(t)+Chr$(10))
OutputDebugString("999999999999994/10 = "+Str$(999999999999994/10)+Chr$(10))
OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))
[結果]
999999999999994/10 = 99999999999999.5
999999999999994/10 = 99999999999999.5
999999999999999 : 1.00000000000000e+015
後者のStr$()関数ですが、function.shp の _ecvt()中の 「正規化」の所で
While 9.99999999999999<=value '10<=value
value=value/10
dec=dec+1
Wend
↓
While 10<=value '10<=value
value=value/10
dec=dec+1
Wend
にすれば
OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))
[結果]
999999999999999 : 999999999999999
と表示しますが、ダメでしょうか?
宜しくお願いします。
何時も、お世話に成っています。
一部の演算結果とStr$()関数に不具合(?)
Dim t As Double
t=999999999999994/10 OutputDebugString("999999999999994/10 = "+Str$(t)+Chr$(10)) OutputDebugString("999999999999994/10 = "+Str$(999999999999994/10)+Chr$(10))
OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))
[結果] 999999999999994/10 = 99999999999999.5 999999999999994/10 = 99999999999999.5
999999999999999 : 1.00000000000000e+015
後者のStr$()関数ですが、function.shp の _ecvt()中の 「正規化」の所で
While 9.99999999999999<=value '10<=value value=value/10 dec=dec+1 Wend ↓ While 10<=value '10<=value value=value/10 dec=dec+1 Wend
にすれば
OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))
[結果] 999999999999999 : 999999999999999
と表示しますが、ダメでしょうか?
宜しくお願いします。
|