| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:?显示的问题
只看楼主 加入收藏
其实不必完美
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2012-10-28
结帖率:54.55%
收藏
已结贴  问题点数:10 回复次数:8 
?显示的问题
在命令窗口输入?9-5  ?5*9等等
屏幕上显示答案的时候为什么会有多少不等的空格!

[ 本帖最后由 其实不必完美 于 2012-12-8 22:06 编辑 ]
搜索更多相关主题的帖子: 多少 
2012-12-08 22:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
? 需把数值转化成字符串输出,默认是有宽度的。

授人以渔,不授人以鱼。
2012-12-08 22:53
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
数值型数据默认宽度为10
?transform(9-5)
?transform(9*5)
看下结果如何
2012-12-09 04:14
其实不必完美
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2012-10-28
收藏
得分:0 
那为什么?9+5得出的结果没有空格?
希望大家能在vfp里面试一下再说,想没有空格我不是不知道,用alltrim就可以了,我想知道的是+没有空格,-和*有空格,而且空格不一样多是为什么!
2012-12-09 06:43
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:5 
楼主确实是个细心的人。我测试了一下,加和除的结果前面无空格,减和乘按固定长度的格式输出。测试结果如下图:
图片附件: 游客没有浏览图片的权限,请 登录注册

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-12-09 07:16
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用其实不必完美在2012-12-9 06:43:00的发言:

那为什么?9+5得出的结果没有空格?
希望大家能在vfp里面试一下再说,想没有空格我不是不知道,用alltrim就可以了,我想知道的是+没有空格,-和*有空格,而且空格不一样多是为什么!
空格不一样多很可能是VFP按固定长度的格式输出,所以前面空格的数量取决于有效字符的长度。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-12-09 07:19
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:5 
回复 3楼 bccn201203
你的代码,没有了空格,可是不用你的代码,宽度也不是10。
通过我的测试,如果结果是一位数,前面有两个空格,结果是其他位数,包括十位以上,也是前面有一个空格。
十位数以上的计算结果,后面有默认小数位数2位。
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

坚持学习vfp,QQ:306805680
2012-12-09 08:51
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用月沐庭轩在2012-12-9 08:51:27的发言:

你的代码,没有了空格,可是不用你的代码,宽度也不是10。
通过我的测试,如果结果是一位数,前面有两个空格,结果是其他位数,包括十位以上,也是前面有一个空格。
十位数以上的计算结果,后面有默认小数位数2位。
 
显示整数还是小数的差异不完全在于位数,而是在于精度。你试试“?2147483646+1”命令,看看是什么情况;再试一下“?2147483646+2”命令,看看又是什么情况。这两个结果整数部分都是10位数,为什么前者显示整数,后者显示带小数呢?这是因为在FoxPro中进行整数计算时,在整个计算过程中,任何一个步骤的结果都在整数型可用的范围内,那么最后的结果就显示整数;反之,只要其中有一个步骤的结果超出了整数型的可用范围(含中间步骤),那么最后的结果就显示为浮点型的。可以做一个实验:在命令窗口中分别键入“?2147483646+2-1”和“?2147483646-1+2”命令,比较一下返回的结果。在FoxPro中,整型数值固定以4个字节存储。其中,最高位第32位存储正负号:0为正,1为负;其余31位存储数值内容。所以,它可用的范围在[-2147483647, 2147483647]区间内,运算中任何一个步骤的结果超过这个范围,就被自动转换成范围更大的浮点型,所以最后的结果显示会带小数位。

最后,说说显示结果前面的空格问题。我没有完全研究清楚,因为比较复杂。我只知道:1)+、-、* 的计算结果前面都可能会出现空格;2)以整数显示时,1位:空两格;2-9位:空一格;10位:1000000000-1999999998区间,不空格;1999999999-2147483647区间,空一格;3)负数也遵循这个规律;4)浮点数在我们平时用得到的范围内,前面都只空一格。有兴趣的朋友可以试试更大范围的浮点数。


[ 本帖最后由 taifu945 于 2012-12-9 12:33 编辑 ]
2012-12-09 12:31
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 8楼 taifu945
值得学习。

坚持学习vfp,QQ:306805680
2012-12-09 13:43
快速回复:?显示的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019509 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved