Variables Pascal-如何将实变量转换为整数变量
我正在用帕斯卡写一个任务 一切都好,只是我的结果不对 我在给一些数字求和 示例:2.3+3.4+3.3=9 但输出显示:9.000000+EEE或类似的东西 所以-如何转换,只有9,而不是这个实变量 要实际转换:Variables Pascal-如何将实变量转换为整数变量,variables,pascal,Variables,Pascal,我正在用帕斯卡写一个任务 一切都好,只是我的结果不对 我在给一些数字求和 示例:2.3+3.4+3.3=9 但输出显示:9.000000+EEE或类似的东西 所以-如何转换,只有9,而不是这个实变量 要实际转换: var i: integer; ... i := round(floatVar); 要仅输出整数部分,请执行以下操作: writeln(floatVar:9:0); 为了在屏幕上显示漂亮的输出,您可以使用如下内容: Writeln(result:0:2); 屏幕上的结果如
var
i: integer;
...
i := round(floatVar);
要仅输出整数部分,请执行以下操作:
writeln(floatVar:9:0);
为了在屏幕上显示漂亮的输出,您可以使用如下内容:
Writeln(result:0:2);
屏幕上的结果如下:
9.00
这意味着有人会问什么?第一个数字0表示区域有多宽。如果你说它是0,那么帕斯卡会把它写在屏幕的最左边。如果您说writeln(结果:5:2)
结果将是:
9.00
换句话说,我会从右边打印,并留下5个字符
第二个数字2,在本例中意味着您希望用2位小数打印结果。仅当您要在屏幕上打印实数、单数、双数、扩展数等值时,才可以放置它。您可以舍入到任意数量的小数,如果执行writeln(结果:0:0)
操作,您将得到输出:
9
如果您正在打印整数,并且希望有一定长度的字段,那么让sat 5执行以下操作:writeln(int: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.
我在这里所做的是询问用户是否需要输入数字a,输入的小数位数是多少,字段长度是多少。这可能很有用,所以我要指出。谢谢你的阅读。我希望我帮助
让我们考虑这个更简单的等式:
3.5 + 2.5
你期待什么<代码>6,对吗?让我们试试这个代码
write(3.5 + 2.5);
不幸的是,它是一个浮点数,所以它会产生一个以科学方式表示的数字:
6.00000000000E+00
或6.0000000000 x 100,或6 x 10o。不管怎样,你只关心6,谁需要这个奇怪的无用的长数字?因此,我们的想法是切断小数部分,只向控制台输出整数部分,这可以通过以下代码行完成:
write(3.5 + 2.5 : 0 : 0);
write(3.6 + 2.5 : 0 : 0);
好的,现在它输出了一个漂亮的数字
6
看起来问题解决了,但你说:
我在给一些数字求和
示例:2.3+3.4+3.3=9
哦,那么这个均匀美丽的整数就是随机出现的吗?问题来了,你认为这个等式会产生怎样的结果
3.6 + 2.5
它应该是6.1
,对吗?让我们用工作代码行试试:
write(3.5 + 2.5 : 0 : 0);
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.0
和3.6+2.5=6.1
。但是6.0
可能看起来很长,那么如何让6.0的6
和6.1的6.1
输出呢
实际上,你不能让程序自动检测实数变量是否包含整数值,因为实数变量的存储方式与整型变量完全不同(它们有多大不同,请联系谷歌;但你可以通过创建函数来手动执行)
因此,我的解决方案是,简单地说,将输出四舍五入到一些小数位,就是这样。您可以转换为
字符串
,获取int
部分,e转换为int
数字
或Float
到Str
比Str
到Int
:
nPage := StrToInt(FloatToStr(Int(nReg / nTPages))) + 1;
谢谢,但在第一部分-重复标识符。