HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0605
リトルリンダこれってなんでエラーになるんですか?6解決


リトルリンダ

リンク

2024/6/5(Wed) 17:33:21|NO.101778


dim a,10,10 a.0.0=10 a.0.1=3 b=666 mes a.0.0-a.0.1 // ;mes ""+a.0.0-a.0.1 // mes "b="+b //

本当は△陵佑傍述したいのですがエラーになります。
,鉢はエラーが出ないのでイケる気しかしないのですが、
よろしければご協力をお願いいたします。



この記事に返信する


法貴藤五郎

リンク

2024/6/5(Wed) 18:55:02|NO.101783

△癲福防佞でよいならいけます。

mes ""+(a.0.0-a.0.1)



リトルリンダ

リンク

2024/6/5(Wed) 19:19:37|NO.101785

法貴藤五郎さん

できました!
プログラムって難しいですね…

ありがとうございました!



リトルリンダ

リンク

2024/6/5(Wed) 19:20:21|NO.101786

解決押し忘れましたので押します。
法貴藤五郎さん、改めてありがとうございました!



窓月らら

リンク

2024/6/5(Wed) 21:38:46|NO.101787

mes ""+a.0.0-a.0.1 //

解決済ですが、しっかり理解できるよう補足します。
まず上記ですが、これは先頭の "" があることで文字列として処理しようとします。
HSP3の場合、文字列+数値は自動的に数値が文字列として解釈され連結することができますが
""+a.0.0-a.0.1 この場合は 文字列+数値(文字列に変換)-数値(文字列に変換) となってしまうためエラーとなります。
問題は - がある点で文字列処理で - は不正な操作だからです。

mes ""+a.0.0+a.0.1 //

試しに - を + にするとエラーにはならず、103が表示されます。
これは ""+10の文字列+3の文字列 という処理結果のためです。

そこで ""+(a.0.0-a.0.1) とすることで()内の計算が先にされて
結果の数値を ""+結果の数値 と処理することで正しい文字列になるというわけです。

() で囲うと先に処理されるという仕様を覚えておいてください。



法貴藤五郎

リンク

2024/6/6(Thu) 19:14:11|NO.101791

>窓月ららさん
ナイスフォローです、補足ありがとうございます。



リトルリンダ

リンク

2024/6/6(Thu) 19:56:11|NO.101792

窓月ららさん

最初に指定した型に変換されるのを失念しておりました。
()で囲う事で型変換される前に数値として計算されるという事ですね。
普段あまり意識していませんでしたが、大変勉強になりました。

いつもありがとうございます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.101778への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.