スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[HSP3]指数表現の文字列stringを倍精度小数doubleに変換する

HSP3で指数表現「0.5e+01みたいな小数の表現方法、この場合は0.5×10^1=5.0」を数値に変換することは可能でしょうか?

mes double("0.5e+01") // 5

おしまい。
自分でもまさか対応しているとは思いませんでした。リファレンスには載ってなかったかな。
hspmath.as辺りにしっかり使われていたり。
ちなみに、

mes int("0.5e+02") // 50にはならない。0。
mes int("0x10") // 16にはならない。0。
mes double("0x10") // 16.にはならない。0.。

16進数にも対応してくれたらありがたい…と思ったら

mes int("$10") // 16

$なら、16進数を10進数に変換することができるようです。

10進数を16進数の文字列に変換したり、小数を指数表現の文字列に変換したい場合はstrfでヘルプを参照。

オマケ:
ってか、strtointなんていう命令が用意されていたんですね。こっちの方が便利かもしれません。llmod3に搭載されています。
//ヘルプ引用
strtoint "111101",2 ;2進数とみなして変換
mes stat

strtoint "0x1F" ;先頭が"0x"だと16進数とみなされる(Base省略時)
mes stat


追記:
HSP3にもなってllmodなんて使いたくねーお!!なんて方は

#uselib "msvcrt"
#cfunc strtoint "strtol" sptr,nullptr,int

txt="0xFF"
mes strtoint(txt,0)

llmod経由か単にuselibを用いるかの違いで、やろうとしていることは全く同じ。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : HSP3

コメントの投稿

非公開コメント

ブログ移転のお知らせ
ブログをshonen.hateblo.jpに移転します. 新規の記事はこちらに投稿します.
プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
635位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
94位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。