掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
四捨五入をするには (ID:33639)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
文字ベースですね、 エラーチェックはなしです。 function HalfAdjustStr(str:WideString):WideString; var i,L:Integer; DotFound:Boolean; procedure IncInt(var aStr:WideString; Index:Integer); begin if Index=1 then begin aStr[Index]:= WChar($30); aStr := '1' + aStr; //手抜き end else begin case Word(aStr[Index]) of $30 .. $38 : aStr[Index]:= WChar( Word(aStr[Index]) + 1); $39 : begin aStr[Index]:= WChar($30); IncInt(aStr,Index-1); end; end; end; end; begin L:= Length(str); SetLength(Result,L); DotFound:=False; for i := 1 to L do begin if str[i]='.' then DotFound:=True else begin if DotFound then begin Result[i-1]:=WChar(0); SetLength(Result,i); if Word(str[i]) >= $35 then //5より大きい場合 IncInt(Result,i-2); Exit; end else Result[i] := str[i]; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text := HalfAdjustStr(Edit1.Text); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.