前提・実現したいこと
Windows10+Visual C++ 2017の環境にて
CSVファイルから取得した数値データを処理するプログラムを作成しています。
CSVからの文字列取得にはCStdioFileのResdStringを使用してCString型の変数に格納しています。
CSVには下記のように小数点以下8桁の数値が入力されています。(負の数有り)
"0.10000000", ”-0.30000000”, "-0.59564810"・・・
発生している問題
ここで下記のようにwcstodを使用して文字列からdouble型の変数に変換して代入したところ誤差が発生しました。
CString strMoji; double dSuuchi; dSuuchi = wcstod( strMoji, NULL);
結果、strMoji = -0.30000000がdSuuchi = -0.29999999999999999になってしまいました。
誤差の出ないように型変換するにはどのような方法がありますでしょうか。
追記
この後の処理でdSuuchiを計算式にて再計算した値を再びCSVに書き込む処理となっています。
変換された時点のdSuuchiの値をデバッガで確認した結果上記となっています。
回答3件
あなたの回答
tips
プレビュー