
Pythonで下記の様なエラーが出ます。
Traceback (most recent call last):
File "/Users/xxxxxxxxi/bin/Python/m_HMC_618_5.py", line 82, in <module>
phi[imat,jmat] = float(read[2]) + float(read[3])*1j
^^^^^^^^^^
ValueError: could not convert string to float: '-6.644120930233857e-'
ファイルに書き込んだ4列目の文字列をfloatに変換している部分なのですが、
何故か、指数形式で書かれている文字列の何処かの箇所で上記の様なエラーが
発生してしまいます。指数形式で書かれている部分は他にも何箇所かあってその
箇所ではエラーにならないのですが、ある箇所でエラーになってしまいます。
エラーになってしまう箇所の指数形式の書き方が特におかしいと言うわけでは
ないのですが、なぜか何処かでランダムに転けてしまいます。
また、列の区切りは半角スペースで行っています。
理由が分かりかねています。ご経験のある方、御教示願えればと思います。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
エラーは既に回答があるように、read[2]かread[3]の内容が'-6.644120930233857e-'という浮動小数点数として不適切な文字列なのでfloatがエラーを吐いています。
readという変数? を作っている部分を確認すべきでしょう。データに不適切な空白あるいは改行があるとか、列の読み込み文字数に制限があって20文字までで切れているとか。
No.3
- 回答日時:
'-6.644120930233857e-' は浮動小数点を表す文字列として
形式がおかしいです。
元のテキストファイルがおかしいのか、
元のテキストファイルに問題がなければ、
テキストを読むコードに不具合があるのでしょう。
入力のテキストのフォーマットやそれを読むコードを晒さない限り
具体的なアドバイスは無理ですね。
No.2
- 回答日時:
ファイルに書き込んだ4列目の文字列がどうなっているか確認してください。
-6.644120930233857e- となっているなら、その文字列が数値として誤っています。その場合は、数値として正しい文字列を書き込むように修正してください。
-6.644120930233857e-01 とか
-6.644120930233857e-1 とか
なっているなら、その文字列は数値として正しいです。
その場合は、read[2]かread[3]へその文字列を格納するときにデータの欠落が発生しています。(文字列の最後のe-XXのXXが欠落)
No.1
- 回答日時:
そりゃまあ、'-6.644120930233857e-' は指数形式じゃあないわな。
変換の問題じゃなく、ファイルの読み込みの問題じゃない?
read[2] だか read[3] だかしらんけど、文字列がなんでこんな変なもの
になったか?をデバッグする話だと思われ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
VB2008 comboboxを連動させた...
-
String""から型'Double'への変...
-
レコード登録時に「演算子があ...
-
実行時エラー 438 の解決策をお...
-
ApplicationとWorksheetFunctio...
-
On ErrorでエラーNoが0
-
pythonのopenpyxlについて
-
VBAでfunctionを利用しようとし...
-
コンボボックスの特定項目だけ...
-
HTMLソースが表示のページのも...
-
VBAで、Excelの選択範囲をWeb形...
-
Filter関数を用いた結果、何も...
-
WindowsでのPythonの挙動について
-
VBA エクセル で FIND でのエラ...
-
ACCESS VBAのSplit()関数の使用...
-
マクロで"#N/A"のエラー行を削...
-
インポート時のエラー「データ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
レコード登録時に「演算子があ...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
ApplicationとWorksheetFunctio...
-
On ErrorでエラーNoが0
-
Excel vbaについての質問
-
ACCESSで値を代入できないとは?
-
VBA データ(特定値)のある最...
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
実行時エラー'-2147467259(8000...
おすすめ情報