Pascal-如何将Real转换为Integer变量

时间:2013-06-05 16:29:08

标签: variables pascal

我正在用pascal写一个任务。

一切都很好,只是我的结果不对。

我在总结一些数字

示例:2.3 + 3.4+ 3.3 = 9

但输出显示:9.000000 + EEE或类似的东西。

所以如何转换,只有9,而不是这个REAL变量。

4 个答案:

答案 0 :(得分:2)

实际转换:

var
  i: integer;
...
  i := round(floatVar);

仅输出整数部分:

writeln(floatVar:9:0);

答案 1 :(得分:0)

为了在屏幕上显示漂亮的输出,您可以使用以下内容:

9.00

屏幕上的结果是:

writeln(result:5:2)

这意味着有人会问?第一个数字0意味着有多宽。如果你说它是0,那么Pascal会在屏幕的最左侧写下它。如果您说 9.00 结果将是:

writeln(result:0:0)

换句话说,我会从右侧打印并留下5个字符。

第二个数字2,在此示例中表示您希望打印的结果为2个小数位。只有当你想要在真实,单一,双重,扩展等屏幕上打印时才可以放置它。你可以舍入到任意数量的小数,如果你9 ,你会得到输出:< / p>

writeln(int:5)

如果您要打印整数并希望拥有一定长度的字段,那么请坐5::2。如果您将writeln(5/3.5+sqrt(3):0:3)添加到结尾,则会出现编译时错误。

这一切也适用于这样的事情:program test; var a:real; n,m:integer; begin readln(a,m,n); writeln(a:m:n); end.

你应该知道这不会对变量本身进行舍入,而只是格式化输出。这也是合法的:

private final retrofit.Callback loginCallBack = new retrofit.Callback() {

        @Override
        public void success(Object o, Response response) {
            messageUtil.hideProgressDialog();

            UserItem object = (UserItem) o;
            if (object.getUser().get(0).getStatus().equalsIgnoreCase("101")) {
                messageUtil.showMessageDialog("Invalid Username & Password");
            } else if ((object.getUser().get(0).getStatus().equalsIgnoreCase("100")) && (object.getUser().get(0).getWedding_create().equalsIgnoreCase("1"))) {
                    VPreferences.setPreferanceRetype(LoginActivity.this, object.getUser().get(0).getRetype());
                    VPreferences.setPreferanceWeddingKey(LoginActivity.this, object.getUser().get(0).getWedd_key());
                    VPreferences.setPreferanceEmail(LoginActivity.this, object.getUser().get(0).getEmail());
                    VPreferences.setPreferanceUserName(LoginActivity.this, object.getUser().get(0).getFirst_name());
                    VPreferences.setPreferanceLastName(LoginActivity.this, object.getUser().get(0).getLast_name());
                    VPreferences.setPreferancePSW(LoginActivity.this,object.getUser().get(0).getPassword());
                    VPreferences.setPreferanceBorG(LoginActivity.this, object.getUser().get(0).getType());
                    VPreferences.setIsLogin(LoginActivity.this, true);
                    VPreferences.setPreferanceBothName(LoginActivity.this,object.getUser().get(0).getBoth_name());
                    VPreferences.setPreferenceClientID(LoginActivity.this, object.getUser().get(0).getCid());
                    VPreferences.setPreferanceCoverPhoto(LoginActivity.this,object.getUser().get(0).getWedd_image());
                VPreferences.setPreferanceMobNo(LoginActivity.this,object.getUser().get(0).getPhoneno());
                VPreferences.setPreferanceAccomodation(LoginActivity.this,object.getUser().get(0).getAcco_detail());
                VPreferences.setPreferanceTravel(LoginActivity.this,object.getUser().get(0).getTrans_detail());
                VPreferences.setPreferanceArrivalDate(LoginActivity.this,object.getUser().get(0).getDate_arrival());
                VPreferences.setPreferanceHisWeddingKey(LoginActivity.this,object.getUser().get(0).getWedd_key());
                VPreferences.setPreferanceProfileImg(LoginActivity.this,object.getUser().get(0).getPropic());
                VPreferences.setPreferanceFName(LoginActivity.this,object.getUser().get(0).getFirst_name());

                    startActivity(new Intent(LoginActivity.this, MainActivity_.class));
                }
            else if((object.getUser().get(0).getStatus().equalsIgnoreCase("100")) && (object.getUser().get(0).getWedding_create().equalsIgnoreCase("0"))){
                VPreferences.setPreferanceRetype(LoginActivity.this, object.getUser().get(0).getRetype());
                VPreferences.setPreferanceFName(LoginActivity.this,object.getUser().get(0).getFirst_name());
                VPreferences.setPreferanceWeddingKey(LoginActivity.this, object.getUser().get(0).getWedd_key());
                VPreferences.setPreferanceEmail(LoginActivity.this, object.getUser().get(0).getEmail());
                VPreferences.setPreferancePSW(LoginActivity.this,object.getUser().get(0).getPassword());
                VPreferences.setPreferanceUserName(LoginActivity.this, object.getUser().get(0).getFirst_name());
                VPreferences.setPreferanceLastName(LoginActivity.this, object.getUser().get(0).getLast_name());
                VPreferences.setPreferanceBorG(LoginActivity.this, object.getUser().get(0).getType());
                VPreferences.setIsLogin(LoginActivity.this, true);
                VPreferences.setPreferanceProfileImg(LoginActivity.this,object.getUser().get(0).getPropic());
                VPreferences.setPreferanceBothName(LoginActivity.this,object.getUser().get(0).getBoth_name());
                VPreferences.setPreferenceClientID(LoginActivity.this, object.getUser().get(0).getCid());
                VPreferences.setPreferanceCoverPhoto(LoginActivity.this,object.getUser().get(0).getWedd_image());
                VPreferences.setPreferanceHisWeddingKey(LoginActivity.this,object.getUser().get(0).getWedd_key());
                VPreferences.setPreferanceMobNo(LoginActivity.this,object.getUser().get(0).getPhoneno());
                VPreferences.setPreferanceAccomodation(LoginActivity.this,object.getUser().get(0).getAcco_detail());
                VPreferences.setPreferanceTravel(LoginActivity.this,object.getUser().get(0).getTrans_detail());
                VPreferences.setPreferanceArrivalDate(LoginActivity.this,object.getUser().get(0).getDate_arrival());
                startActivity(new Intent(LoginActivity.this, ChooseOneActivity_.class));
            }else if((object.getUser().get(0).getStatus().equalsIgnoreCase("100")) && (object.getUser().get(0).getRetype().equalsIgnoreCase("0") && (object.getUser().get(0).getWedding_create().equalsIgnoreCase("0")))){
                VPreferences.setPreferanceRetype(LoginActivity.this, object.getUser().get(0).getRetype());
                VPreferences.setPreferanceWeddingKey(LoginActivity.this, object.getUser().get(0).getWedd_key());
                VPreferences.setPreferanceFName(LoginActivity.this,object.getUser().get(0).getFirst_name());
                VPreferences.setPreferanceEmail(LoginActivity.this, object.getUser().get(0).getEmail());
                VPreferences.setPreferanceUserName(LoginActivity.this, object.getUser().get(0).getFirst_name());
                VPreferences.setPreferanceLastName(LoginActivity.this, object.getUser().get(0).getLast_name());
                VPreferences.setPreferancePSW(LoginActivity.this,object.getUser().get(0).getPassword());
                VPreferences.setPreferanceBorG(LoginActivity.this, object.getUser().get(0).getType());
                VPreferences.setIsLogin(LoginActivity.this, true);
                VPreferences.setPreferanceProfileImg(LoginActivity.this,object.getUser().get(0).getPropic());
                VPreferences.setPreferanceBothName(LoginActivity.this,object.getUser().get(0).getBoth_name());
                VPreferences.setPreferenceClientID(LoginActivity.this, object.getUser().get(0).getCid());
                VPreferences.setPreferanceCoverPhoto(LoginActivity.this,object.getUser().get(0).getWedd_image());
                VPreferences.setPreferanceHisWeddingKey(LoginActivity.this,object.getUser().get(0).getWedd_key());
                VPreferences.setPreferanceMobNo(LoginActivity.this,object.getUser().get(0).getPhoneno());
                VPreferences.setPreferanceAccomodation(LoginActivity.this,object.getUser().get(0).getAcco_detail());
                VPreferences.setPreferanceTravel(LoginActivity.this,object.getUser().get(0).getTrans_detail());
                VPreferences.setPreferanceArrivalDate(LoginActivity.this,object.getUser().get(0).getDate_arrival());
                startActivity(new Intent(LoginActivity.this, MainActivity_.class));
            }

        }
        @Override
        public void failure(RetrofitError error) {
            messageUtil.showMessageDialog("Server Error !!");
            messageUtil.hideProgressDialog();
        }
    };

我在这里做的是我问用户是否有多少小数以及他想写的字段长度输入数字a。这可能很有用,所以我指出来了。谢谢你的阅读。我希望我帮助

答案 2 :(得分:0)

让我们考虑一下这个非常简单的等式:

3.5 + 2.5

你期待什么? 6,对吧?让我们试试这段代码

write(3.5 + 2.5);

不幸的是,它是一个浮点数,所以它会产生一个以科学方式表示的数字:

6.00000000000E+00

或6.0000000000 x 10 0 ,或6 x 10 o 。无论如何,你只关心6,谁需要这个奇怪无用的长号?所以我的想法是切掉小数部分,只输出整数部分给控制台,这可以用这行代码完成:

write(3.5 + 2.5 : 0 : 0);

好的,现在它按预期输出一个漂亮的数字

6

似乎问题已经解决,但你说的是:

  

我总结一些数字

     

示例:2.3 + 3.4+ 3.3 = 9

哦,以便随机出现均匀,美丽的整数?问题出现了,您如何期望这个方程会输出?

3.6 + 2.5

它应该是6.1,对吗?让我们尝试使用有效的代码行:

write(3.6 + 2.5 : 0 : 0);

输出是......

6

出乎意料,对吧?那么如何舍入到一些小数位,比如1

write(3.5 + 2.5 : 0 : 1);
write(3.6 + 2.5 : 0 : 1);

然后,3.5 + 2.5 = 6.03.6 + 2.5 = 6.1。但6.0可能看起来很长,那么如何为6.0输出6和6.1输出6.1

实际上,如果实变量包含整数值,则无法使程序自动检测,因为存储实际var的方式与整数var完全不同(它们有多不同,请联系Google;但是你可以通过创建一个函数来手动完成这个工作。)

所以我的解决方案很容易,将输出舍入到一些小数位,这就是它。

答案 3 :(得分:0)

您可以转换为string,获取int部分,转换为int数字!

FloatStr而不是StrInt

nPage := StrToInt(FloatToStr(Int(nReg / nTPages))) + 1;