🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

C++Builder

C++Builderは、C/C++を用いてアプリ開発できる統合開発環境 (IDE) 。DelphiのC++版です。コンポーネントによるビジュアル開発、高機能なコードエディターなどで生産性の高い開発ができます。

Q&A

解決済

1回答

1019閲覧

小数点の計算・表示が出来ない

dem0nmichik0

総合スコア37

Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

C++Builder

C++Builderは、C/C++を用いてアプリ開発できる統合開発環境 (IDE) 。DelphiのC++版です。コンポーネントによるビジュアル開発、高機能なコードエディターなどで生産性の高い開発ができます。

0グッド

0クリップ

投稿2019/12/27 06:16

###実現したいこと
開発環境で作成したアプリケーションの画面解像度と実機の画面解像度が異なってもアプリケーションの表示が異ならないようにしたい。

###困っていること
小数点の計算や表示ができなくて困っています。

###経緯
フォームとコントロールを動的にサイズ変更するときの考慮事項
開発環境の画面解像度:1024×768
実機の画面解像度:1366×768
開発環境の画面解像度と実機の画面解像度は上記の通りで,上記URLを参考に縦の「画面解像度の差分比率」を求めようとしました。ですが,小数点の計算が出来ずに困っています。

###試したこと
小数点の計算が出来るかを下記ソースコードで試してみましたが,「Unit1.cpp」の「ShowMessage(floatToStr(c));」で「1」と出て困っています。自分的には「1.75」と表示されてほしいです。どなたかご教授お願いいたします。

###ソースコード
Project1.cpp

C++

1//--------------------------------------------------------------------------- 2 3#include <vcl.h> 4#pragma hdrstop 5#include <tchar.h> 6//--------------------------------------------------------------------------- 7USEFORM("Unit1.cpp", Form1); 8//--------------------------------------------------------------------------- 9int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int) 10{ 11 try 12 { 13 Application->Initialize(); 14 Application->MainFormOnTaskBar = true; 15 Application->CreateForm(__classid(TForm1), &Form1); 16 Application->Run(); 17 } 18 catch (Exception &exception) 19 { 20 Application->ShowException(&exception); 21 } 22 catch (...) 23 { 24 try 25 { 26 throw Exception(""); 27 } 28 catch (Exception &exception) 29 { 30 Application->ShowException(&exception); 31 } 32 } 33 return 0; 34} 35//---------------------------------------------------------------------------

Unit1.cpp

C++

1//--------------------------------------------------------------------------- 2 3#include <vcl.h> 4#pragma hdrstop 5 6#include "Unit1.h" 7//--------------------------------------------------------------------------- 8#pragma package(smart_init) 9#pragma resource "*.dfm" 10TForm1 *Form1; 11//--------------------------------------------------------------------------- 12__fastcall TForm1::TForm1(TComponent* Owner) 13 : TForm(Owner) 14{ 15 int a = 7; 16 int b = 4; 17 float c = a/b; 18 ShowMessage(floatToStr(c)); 19} 20//---------------------------------------------------------------------------

Unit1.h

C++

1//--------------------------------------------------------------------------- 2 3#ifndef Unit1H 4#define Unit1H 5//--------------------------------------------------------------------------- 6#include <System.Classes.hpp> 7#include <Vcl.Controls.hpp> 8#include <Vcl.StdCtrls.hpp> 9#include <Vcl.Forms.hpp> 10//--------------------------------------------------------------------------- 11class TForm1 : public TForm 12{ 13__published: // IDE で管理されるコンポーネント 14private: // ユーザー宣言 15public: // ユーザー宣言 16 __fastcall TForm1(TComponent* Owner); 17}; 18//--------------------------------------------------------------------------- 19extern PACKAGE TForm1 *Form1; 20//--------------------------------------------------------------------------- 21#endif 22

###開発環境
OS:Windows10 pro 64bit
IDE:Embarcadero10.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

float c = a/b;

aもbもintなので、整数演算となってしまってます
float c = ((float)a)/b;
とキャストしましょう

投稿2019/12/27 07:20

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dem0nmichik0

2019/12/27 07:57

y_waiwai様,回答ありがとうございます。 すいません,とても初歩的なことかもしれませんが,気づきませんでした。 指摘の通り,実行したらできました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問